我的標題道歉,我無法正確闡述問題。我看過OnCLickListener
兩種方式實現。第一種是通過表示你的班級實施OnCLickListener
來完成的。第二個通過讓你自己聲明它來完成任務。聲明一個類實現OnClickListener與自己聲明它?
爲什麼在第一個選項中,您可以簡單地將this
作爲您的setOnCLickListener
參數,但在第二個選項中,您必須經歷自己創建OnClickListener
對象的麻煩?
第一:
public class WidgetConfig extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.widgetconfig);
Button b = (Button)findViewById(R.id.bwidgetconfig);
b.setOnClickListener(this);
}
//onClick defined outside of the onCreate
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
第二:
public class WidgetConfig extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.widgetconfig);
Button b = (Button)findViewById(R.id.bwidgetconfig);
b.setOnClickListener(bListener);
}
private Button bListener = new OnClickListener(){
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//TO-DO
}
});
這個問題是無處相關的android,它涉及到你的JAVA概念 –
方式#3 - 只是FYI,你也可以創建自己的自定義類,讓它實現ClickListener接口,然後創建該偵聽器的新實例。然後您可以調用:setOnClickListener(new YourCustomClass())。這是封裝處理您的點擊操作的代碼的好方法。 –