我的标题道歉,我无法正确阐述问题。我看过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())。这是封装处理您的点击操作的代码的好方法。 –