从Android开发的角度来看,在编程时,您更倾向于为侦听器实现哪种方式?或者您认为哪种方式最适合可读代码?我举了两个关于这些事情的例子,但是想想更复杂的类,比如有多个Listener:)
第一个例子是匿名类:
public class SenderReceiverActivity extends Activity {
Button cancelButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sending);
cancelButton = (Button) findViewById(R.id.button1);
cancelButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
}}
第二个实现接口的例子:
public class SenderReceiverActivity extends Activity implements OnClickListener {
Button cancelButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sending);
cancelButton = (Button) findViewById(R.id.button1);
cancelButton.setOnClickListener(this);
}
public void onClick(View v) {
}
}
答案 0 :(得分:3)
如果您有单个按钮,那么第一种方法是正确的,因为您的代码没有任何复杂性但是you have many button then second is more clear ,just one onClick method for many buttons and check id of button using v.getId()
但功能上没有任何变化都是相同的。
答案 1 :(得分:2)
我认为第二个approch很好
1-您可以在一个地方点击多个视图...
2-它使代码更短,更容易阅读..
3-易于维护。
4-如果您在项目中使用类似基本活动的概念,那么它也很有用。
答案 2 :(得分:0)
嗯,除了一个之外,两者之间没有太大差异:在第二种情况下,您可以从课外访问onClick(View v)
方法。
如果涉及到我,我更喜欢第一种方法,因为通常不会有多个组件在点击时同时具有相同的行为。