使用具有多个视图的相同onClick侦听器

时间:2011-03-07 20:06:46

标签: android onclick listeners

我正在为许多项目使用相同的onClick侦听器。

当我点击时我想知道哪一个。

我知道我可以在getId()上执行一个Switch语句,但宁愿能够得到该项的名称。 有没有简单的方法呢?

3 个答案:

答案 0 :(得分:1)

我认为当你说“获取名字”时你所指的是来自资源的id字符串。所以你会有一个如下的开关语句:

switch(view.getId()) {
    case R.id.HomeButtonOne:
        // Do Button One Action
        break;
    case R.id.HomeButtonTwo:
        // Do Button Two Action
        break;
}

否则请详细说明你想要达到的目标。

答案 1 :(得分:0)

您有几个选择。

  1. 您可以使用您创建的类扩展View,并包含其他可识别信息。然后在onClick中,将View转换为您的类类型。

  2. 您可以使用Adapter来更好地管理您的观看次数。如果您显示数据视图而不是惰性布局或Drawables,则效果最佳。

  3. 它将归结为您想要存储的内容以及您正在查看的内容。

答案 2 :(得分:0)

只需创建一个实现OnClickListner的类并为您的视图设置实例:

class MyListener implements OnClickListener() {
 // ...
}

MyListener listener = new MyListener();

View view = (View) findViewById(R.id.myViewId);
view.setOnClickListener(listener);
view = (View) findViewById(R.id.myAnotherViewId);
view.setOnClickListener(listener);

...