Java 匿名类编程约定与实现接口
从android开发的角度来看,当您在编程时,您更喜欢用哪种方式实现listener?或者您认为哪种方式最适合可读代码?我给出了两个关于这些内容的示例,但考虑更复杂的类,例如具有多个侦听器的类:) 第一个示例是匿名类:Java 匿名类编程约定与实现接口,java,android,interface,anonymous-class,Java,Android,Interface,Anonymous Class,从android开发的角度来看,当您在编程时,您更喜欢用哪种方式实现listener?或者您认为哪种方式最适合可读代码?我给出了两个关于这些内容的示例,但考虑更复杂的类,例如具有多个侦听器的类:) 第一个示例是匿名类: public class SenderReceiverActivity extends Activity { Button cancelButton; @Override protected void onCreate(Bundle savedInstanceState) {
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) {
}
}
我认为第二种方法也一样好 1-您可以处理多个视图在一个位置单击 2-它使代码更短,易于阅读 3-易于维护
4-如果您在项目中使用基本活动之类的概念,那么它也很有用。如果您有单按钮,那么第一种方法是正确的,因为代码中没有任何复杂性,但是当
有多个按钮时,第二种方法更清晰,只需对多个按钮使用一个onClick方法,并使用v.getId()检查按钮的id
但是在功能上没有任何变化,两者都是相同的。好吧,除了一个之外,两者之间并没有太大区别:在第二种情况下,您可以从类外访问
onClick(View v)
方法
如果对我来说,我更喜欢第一种方法,因为通常不会有多个组件在单击时同时具有相同的行为。+1对于问得好的问题。然而,你应该知道这个网站上有很多类似的问题。我认为调用类似于系统的方法(我说的是android案例)不是一个好的做法。如果您需要显式地调用此类方法,那么应该有问题。然而,您的建议显示了实现接口的另一个方面。谢谢:)我没有说我会那样做。我只是说有这样的可能性=]而且,我认为在活动中实现接口也会显示出您第一眼看到的是哪个侦听器。