我有一个列表视图,其复选框的类型为CHOICE_MODE_NONE,因为我想让每个项目都处于三态。 使用onItemClick中的setChecked可以正常工作,根据需要选中和取消选中项目。
但是在启动视图时,我想设置一些项目。问题是setItemChecked仅在CHOICE_MODE_SINGLE或CHOICE_MODE_MULTIPLE时有效。 那么如何查看项目?
我尝试了以下内容,但ck为null:
int totalItems = getListView().getCount();
if (totalItems > 0)
{
for (int position=0; position<totalItems; position++)
{
CheckedTextView ck = (CheckedTextView)(lv.getChildAt(position));
ck.setChecked(true);
}
}
我做错了什么?
答案 0 :(得分:1)
得到它,感谢http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ - 覆盖arrayadapter让我可以访问列表中每个项目的视图。
所以我能够写下:
@Override
public View getView(int position, View v, ViewGroup parent)
{
if (v == null)
{
v = super.getView(position, v, parent);
}
CheckedTextView tv = (CheckedTextView) v;
tv.setChecked(passengers.get(position).isPassengerOnBoard());
return v;
}