簡體   English   中英

Android setOnClickListener(this)錯誤

[英]Android setOnClickListener(this) Error

我在Android應用程序中創建了一個按鈕,我嘗試設置onclick listner來運行onClick方法,如下所示

...
Button btn_ok;
    btn_ok = (Button)findViewById(R.id.button1);
    btn_ok.setOnClickListener(this);


}
public void onClick() {
     EditText uN = (EditText) findViewById(R.id.EditText04);
     uN.setText("Clicked!");
    }

但Eclipse顯示錯誤並說“setOnClickListener”需要Cast Argument。 鑄造后就像這樣

btn_ok.setOnClickListener((OnClickListener) this);

然后,當我運行程序時,Emulator說“程序已經意外停止”......我該如何解決這個問題?

確保您的類實現了View.OnClickListener。 你不能只添加onClick方法,你必須實現接口

你的onClick方法的簽名是錯誤的,這讓我相信你實際上並沒有實現View.OnClickListener接口。

簽名應該是:

public void onClick(View v)
{
    //your implementation, v is your button that was clicked
}

請注意,單擊的視圖作為參數傳入,因此無需從onClick方法中調用findViewById

從您的活動實現onClickListener並覆蓋該方法:

@override

public void onClick(View v)
{
    switch(v.getId()){
      case R.id.button1:
         EditText uN = (EditText) findViewById(R.id.EditText04);
         uN.setText("Clicked!");
         break;
       case default:
         break;
 }
}

希望能幫助到你。

setOnClickListenerOnClickListener實例作為參數, OnClickListener是一個內容為onClick()方法的接口,您將在這里傳遞setOnClickListener(this); 目前的背景。 所以你有兩個選項可以在你的活動中實現OnClickListener ,第二個使用這種方式:

  this.btn_ok.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    //do your work here
    }
  });

確保您正在實現View.OnClickListener接口,並將View傳遞給onClick方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM