从我所读到的,你可以用两种方式为按钮分配onClick处理程序。
使用android:onClick XML属性,你只是使用一个公共方法的名称与signaturevoid名称(View v)或通过使用setOnClickListener方法,你传递一个实现OnClickListener接口的对象。后者通常需要一个匿名类,我个人不喜欢(个人口味)或定义一个实现OnClickListener的内部类。
通过使用XML属性,你只需要定义一个方法而不是一个类
想知道同样的事情是否可以通过代码而不是在XML布局中完成。
通过使用XML属性,您只需要定义一个方法而不是
一个类,所以我想知道如果同样可以通过代码而不是在
XML布局。
是的,你可以让你的片段或活动实现视图。OnClickListener
当你在代码中初始化你的新视图对象时,你可以简单地做mView.setOnClickListener(this);
这将自动设置代码中的所有视图对象使用onClick(view v)方法,您的片段或活动等。
为了区分哪个视图调用了onClick方法,你可以在v.getId()方法上使用switch语句。
这个答案不同于“不,通过代码是不可能的”
为了让你的生活更简单,并避免setOnClicklistener()中的匿名类,实现一个视图。OnClicklistener接口如下:
公共类YourClass扩展了CommonActivity,实现了View。OnClickListener,……
这避免了:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yourMethod(v);
}
});
并直接指向:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.your_view:
yourMethod();
break;
}
}