我还没有想出在android中设置监听器的首选方法。我倾向于设置我的听众:
(第一种方式)
myButton.setOnClickListener(this);
而不是
(第二种方式)
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//handle clicks
}
});
但是我最近遇到了this个问题,其中一条评论说:
...使用较小的类作为侦听器接口与传递 整个适配器充当接口。
据我所知,内部类具有对外部类的隐式引用,因此根据您设置侦听器的方式应该不会影响传入/引用的对象。
有人可以澄清哪种方式更好,为什么?使用this
(第一种方式)比拥有匿名内部类(第二种方式)更贵吗?
答案 0 :(得分:0)
使用哪一个并不重要。但有些情况下,一种方法比其他方法“更好”。例如:
- 如果您只有几个可点击的视图,则整个活动不需要实现OnClickListener
接口。所以在这种情况下,我更喜欢你的“第二种方式”。
- 否则,如果您有更多可点击的观看次数,或者您的活动主要包含可点击的观看次数,则首选“第一种方式”。它并没有真正产生很大的影响,但您的代码更加有条理。
此外,您可以阅读此post并了解这两种方法之间的区别。