单独或在setOnClickListener()内定义OnClickListener?

时间:2014-10-07 12:04:07

标签: android onclicklistener getview

我在定义点击监听器时填充了getView()适配器,这让我感到疑惑:

性能方面,这两种实现之间是否存在差异:

分别定义onClickListener:

View.OnClickListener mClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View view) { //... }
};
mView.setOnClickListener(mClickListener);

将onClickListener定义为参数:

mView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) { //... }
});

由于经常调用getView(),但我的实现中即使很小的差异也会对应用程序的性能产生很大影响。但我不确定。

那么,关于性能/内存推荐以上哪一项?或者他们不是很重要吗?

1 个答案:

答案 0 :(得分:1)

那实际上取决于你有多少OnClickListener作为匿名类。 最好是实现一个点击监听器,并将其设置为您想要获取点击事件的所有视图,并使用OnClick(View v)中的视图ID排序点击次数

public void onClick(View v) {
   switch (v.getId()) {
     case R.id.some_view_id:
        doSomething();
        break;
   }

}