7

从 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) {

}
}
4

3 回答 3

4

如果你有一个按钮,那么第一个方法是正确的,因为你的代码没有任何复杂性,但是当you have many button then second is more clear ,just one onClick method for many buttons and check id of button using v.getId()

但是功能没有任何变化,两者都是相同的。

于 2012-05-30T06:53:27.313 回答
3

我认为第二种方法很好

1-您可以在一个地方处理多个视图单击...

2-它使代码更短且易于阅读..

3-易于维护。

4-如果您在项目中使用类似基本活动的概念,那么它也很有用。

于 2012-05-30T06:52:40.790 回答
0

好吧,除了一个之外,两者之间并没有太大区别:在第二种情况下,您可以onClick(View v)从类外部访问方法。

如果涉及到我,我更喜欢第一种方法,因为通常不会有多个组件在单击时同时具有相同的行为。

于 2012-05-30T06:58:58.777 回答