检查自定义列表视图中的一个项目另一个自动选择?

时间:2011-05-10 13:32:43

标签: java android

在自定义列表视图中检查一个项目,在Android中选择另一个项目。我正在使用自定义适配器列表视图和复选框。

我在列表视图中使用复选框。 我正在使用以下代码进行复选框计数。即选中了多少个复选框。

final int listItemCount = screenList.getChildCount();
for (int i = 0; i < listItemCount; i++) {
    CheckBox cbox = (CheckBox) ((View) screenList.getChildAt(i))
            .findViewById(R.id.checkBox);
    if (cbox.isChecked()) {
        count++;
    }
}

但是当我收到count=listItemCount时,列表视图中没有显示一些数字。

2 个答案:

答案 0 :(得分:1)

为了访问您期望的那个,请执行以下操作(假设您正在使用ListActivity:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    // this will give you the widget that was selected.
    Widget widget = widgetAdapter.getItem(position);

}

如果这不能解决您的问题,请显示一些代码,以便我们查看。

答案 1 :(得分:0)

我的列表适配器遇到了类似的问题。当为列表中的每个customviewitem(有一个复选框)调用getview()时,getview接收位置和视图对象。

我在调试时看到的是,如果列表一次显示5个项目,那么说 第0个位置视图obj id是830173183032 然后为了 第6个位置视图obj id相同,即830173183032。

所以,当我选中第0项的复选框然后向下滚动时,我会看到第6项复选框也已选中。

代码来自http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/