onItemClick两个Listviews问题

时间:2011-06-25 17:50:04

标签: android

我在同一个活动中有两个列表视图。他们都触发了这个:

public void onItemClick(AdapterView adapter, View v, int position, long arg3) 

如何查看从此事件处理程序中选择的列表? 此外,如果adapter == listA,那么我需要该列表中的复选框和要选择/取消选择的位置。我如何从我的活动中做到这一点?

可能类似于:v.myCheckBox.setChecked(false)< - 显然不起作用。

注意:我使用的是从基本适配器继承的两个自定义适配器。

2 个答案:

答案 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()