Android:如何在使用CHOICE_MODE_NONE时设置复选框

时间:2011-09-22 13:17:52

标签: android listview

我有一个列表视图,其复选框的类型为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);
        }
}

我做错了什么?

1 个答案:

答案 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;
}