要处理事件,有两种方法:
例如,实现回调接口
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);
}
}
Run Code Online (Sandbox Code Playgroud)创建实现回调接口的内部类
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);
}
}
Run Code Online (Sandbox Code Playgroud)哪一个更好?
如果代码很长(并且需要组织或方法化),或者如果我计划一遍又一遍地使用相同的代码,我倾向于使用内部类。Surface
为了清楚起见,甚至我的回调也被组织为内部类。
如果代码简短且易于处理(可能只有事件中的一行),我会使用匿名类。
如果事件与类本身直接相关,我只会使用第一个实现,并且永远不需要附加其他侦听器。这是一种非常罕见的情况。(我也用它进行简单的调试,但这与这里无关。)
归档时间: |
|
查看次数: |
1497 次 |
最近记录: |