我在同一个活动中有两个列表视图。他们都触发了这个:
public void onItemClick(AdapterView adapter, View v, int position, long arg3)
如何查看从此事件处理程序中选择的列表?
此外,如果adapter == listA
,那么我需要该列表中的复选框和要选择/取消选择的位置。我如何从我的活动中做到这一点?
可能类似于:v.myCheckBox.setChecked(false)
< - 显然不起作用。
注意:我使用的是从基本适配器继承的两个自定义适配器。
答案 0 :(得分:1)
要获取复选框 - 最好使用类似的东西:
checkbox = (Checkbox) view.findViewById(R.id.yourcheckboxid);
checkbox.setChecked(false);
知道谁创建视图的最简单方法是在适配器创建的视图的Tag字段中存储某种标识符(View.setTag()方法)。应在适配器的getView方法中创建新视图时设置此项。然后从view.getTag()中,您将能够看到哪个适配器创建了它并做出了适当的反应。
虽然根据你所写的内容你应该采用不同的方式(如果你继承了适配器)。如果您的适配器层次结构是:
A -> B1
\
B2
你只有在B1中创建的视图中有复选框,那么你应该在B1中得到类似的东西:
@Override
public void onItemClick(AdapterView adapter, View v, int position, long arg3) {
super.onItemClick(adapter,v,position,arg3);
checkbox = (Checkbox) view.findViewById(R.id.yourcheckboxid);
checkbox.setChecked(false);
... any other custom handling for list handled by B1
}
答案 1 :(得分:0)
检查哪个视图传递用户view.getId()