Android性能 - 多个View.OnClickListener x检查哪个视图调用onClick

时间:2015-09-13 20:53:37

标签: android performance button imageview onclicklistener

我的Activity中有一些ButtonImageView变量,考虑到大局(设备内存,内存泄漏,性能等),实现的最佳选择是什么?

选项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语句来知道哪个视图调用了调用,但第二个更好地谈论内存使用情况?

0 个答案:

没有答案