【发布时间】:2011-03-07 20:06:45
【问题描述】:
我对许多项目使用相同的 onClick 侦听器。
当我点击时,我想知道是哪一个。
我知道我可以在 getId() 上执行 Switch 语句,但更希望能够获取项目的名称。 有什么简单的方法吗?
【问题讨论】:
-
你说的物品名称是什么意思?
我对许多项目使用相同的 onClick 侦听器。
当我点击时,我想知道是哪一个。
我知道我可以在 getId() 上执行 Switch 语句,但更希望能够获取项目的名称。 有什么简单的方法吗?
【问题讨论】:
我认为当您说“获取名称”时所指的是资源中的 id 字符串。所以你会有一个类似的 switch 语句:
switch(view.getId()) {
case R.id.HomeButtonOne:
// Do Button One Action
break;
case R.id.HomeButtonTwo:
// Do Button Two Action
break;
}
否则,请详细说明您要达到的目标。
【讨论】:
你有几个选择。
您可以使用您创建的类扩展 View,并包含其他可识别信息。然后在 onClick 中,将 View 转换为您的类类型。
您可以使用Adapter 来更好地管理您的视图。如果您显示的是数据视图而不是惰性布局或 Drawable,则此方法效果最佳。
这将归结为您要存储的内容和正在查看的内容。
【讨论】:
只需创建一个实现 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);
...
【讨论】: