[英]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;
}
}
希望能幫助到你。
setOnClickListener
將OnClickListener
實例作為參數, 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.