处理事件有两种方法:
public class A implements View.OnClickListener {
public void onClick(View v) {
....
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
aboutLayout = (LinearLayout) findViewById(R.id.aboutLayout);
aboutLayout.setOnClickListener(this);
}
}
public class ActivityAbout {
private class ViewClickListener implements View.OnClickListener {
public void onClick(View v) {
..
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
ViewClickListener listener = new ViewClickListener();
aboutLayout = (LinearLayout) findViewById(R.id.aboutLayout);
aboutLayout.setOnClickListener(listener);
}
}
哪一个更好?
最佳答案
如果代码很长(需要组织或方法化),或者计划一遍又一遍地使用相同的代码,则倾向于使用内部类。为了清楚起见,甚至我的Surface
回调也都组织为内部类。
如果代码简短且易于处理(事件中仅一行),则使用匿名类。
如果事件与类本身直接相关,并且永远不需要将其附加到其他监听器,则我只会使用第一个实现。这是非常罕见的情况。 (我也将其用于简单的调试,但这在这里是无关紧要的。)