如何处理listview android中的复选框?

时间:2011-01-31 06:50:03

标签: android listview

我正在使用ListView.Code的复选框工作正常。我敲击了所有列表检查项目。我使用下面的代码获取检查项目。但它给出了列表重点区域的结果。

int firstPosition = list.getFirstVisiblePosition();

        for(int i = firstPosition; i < list.getCount(); i++){
            View v = list.getChildAt(i);
            if(v != null){
                cbx = (CheckBox)v.findViewById(R.id.c_checkbox);
                if(cbx.isChecked()){
                                        //adding this check box to one sub list
                }
            }
        }

但它只给出了可聚焦的列表项结果。取决于子列表我想填充我的菜单,这就是我在onPrepareOptionsMen()方法中使用此代码并单击菜单项从数据库中删除此列表的原因。 我找到了另一个解决方案

long checkedPos[] =list.getCheckedItemIds();

但它正在给予

  

01-31 12:07:16.042:   WARN / dalvikvm(294):VFY:无法   解析虚方法808:   Landroid /插件/ ListView中; .getCheckedItemIds   ()[J 01-31 12:07:16.042:   WARN / dalvikvm(294):VFY:拒绝   操作码0x6e在0x0024

此错误。在Google上搜索后,我找到了另一种解决方案

http://groups.google.com/group/android-developers/browse_thread/thread/368d0bae027aab63/1c61f007e821ed2a?q=%22Getting+the+state+of+a+checkbox+inside+of+a+listview%22+%22Romain+Guy%22#1c61f007e821ed2a

但是我想在我的活动onPrepareOptionMenu()中使用SparseBooleanArray。如何从我的适配器中将这个结果返回到我的活动中。请给我建议吗?

最后我使用了SparseBooleanArray.Now它运行正常。 问候, Android开发人员

1 个答案:

答案 0 :(得分:1)

在我的自定义适配器中使用SparseBooleanArray,解决了这个问题。