【发布时间】:2014-08-22 09:25:52
【问题描述】:
我遇到了关于 onItemClickListener 的问题。 我有一个列表视图,其中包含一个复选框,我想点击完整的行。 当我单击一行时,应选中或取消选中复选框取决于条件。
现在的问题是我无法在 onItemClickListener 中获取复选框视图,以便我可以执行进一步的操作。
请检查以下代码:
适配器getView():
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder vHolder;
if (convertView == null) {
vHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.row_comparelist, null);
vHolder.chkSelected = (CheckBox) convertView
.findViewById(R.id.cbRow);
vHolder.chkSelected.setId(position);
convertView.setTag(vHolder);
vHolder.chkSelected.setTag(listObjects.get(position));
} else {
vHolder = (ViewHolder) convertView.getTag();
vHolder.chkSelected.setTag(listObjects
.get(position));
}
vHolder.chkSelected.setChecked(listObjects.get(position).getSelected());
return convertView;
}
Activity onItemClick:
@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos, long arg3) {
// TODO Auto-generated method stub
CheckBox cb = (CheckBox) view.findViewById(R.id.cbRow);
}
在上面的代码中它总是返回空值。
还有什么解决办法?
编辑: 我知道我可以通过设置 OnCheckedChangeListener 或 onClickListener 在适配器内部执行此操作,但由于其他条件我无法执行此操作。所以请提出一个只能与 onItemClickListener 一起使用的解决方案。
【问题讨论】:
标签: android android-listview adapter