我的Activity中有一些Button
和ImageView
变量,考虑到大局(设备内存,内存泄漏,性能等),实现的最佳选择是什么?
选项1 - 每个小部件都有您自己的View.OnClickListener
:
buttonA = new Button(this);
buttonB = new Button(this);
buttonC = new Button(this);
buttonA.setOnClickListener(new ListenerA());
buttonB.setOnClickListener(new ListenerB());
buttonC.setOnClickListener(new ListenerC());
选项2 - 所有小部件共享相同的View.OnClickListener
:
buttonA = new Button(this);
buttonB = new Button(this);
buttonC = new Button(this);
MyListener mListener = new MyListener();
buttonA.setOnClickListener(mListener);
buttonB.setOnClickListener(mListener);
buttonC.setOnClickListener(mListener);
...
class MyListener implements View.OnClickListener{
@Override
public void onClick(View v) {
if(v.getId() == buttonA.getId()){
// stuff A
}
if(v.getId() == buttonB.getId()){
// stuff B
}
if(v.getId() == buttonC.getId()){
// stuff C
}
}
}
我可以想象第一个选项更快,因为不需要if
语句来知道哪个视图调用了调用,但第二个更好地谈论内存使用情况?