小编Mau*_*Mau的帖子

Android Listview - 使用游标时无法选择多个项目

我有一个listview填充了使用SimpleCursorAdapter的游标数据.我想这样做,所以我可以选择多个项目,每个项目都有一个复选框,但我只能一次检查一个项目,即每次选择一个项目时,它将清除当前选择的项目.

如果我使用ArrayAdapter填充列表视图,它工作正常.我可以选择多个项目.所以我不知道为什么它不适用于SimpleCursorAdapter.

如果重要的话,这将在DialogFragment中创建.

真的把头发拉出来,请帮助!!

这是代码:

Cursor attributesCursor = mDBHelper.getItemAttributesbyType(menuID, itemID, "M");
getActivity().startManagingCursor(attributesCursor);

ListView lv = new ListView(this.getActivity());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT);
lv.setLayoutParams(params);


SimpleCursorAdapter adapter = new SimpleCursorAdapter(
                getActivity(), android.R.layout.simple_list_item_multiple_choice,
                attributesCursor, new String[] { "AttributeDescription" },
                new int[] { android.R.id.text1 },0);


attributesLinearLayout.addView(lv);

lv.setAdapter(adapter);

lv.setItemsCanFocus(false);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Run Code Online (Sandbox Code Playgroud)

编辑:只是为了添加一些额外的信息,如果我使用这个代码,多选项列表视图工作,其中"项目"是一个简单的字符串数组:

lv.setAdapter(new ArrayAdapter(this.getActivity(),
            android.R.layout.simple_list_item_multiple_choice, items));
Run Code Online (Sandbox Code Playgroud)

此外,此listview将动态添加到包含其他控件的dialogfragment中的现有Linearlayout(attributesLinearLayout).我也尝试扩展其他适配器,包括阵列适配器和客户项目布局,但这又不允许我选择多个项目.

请帮忙!!

android listview multi-select simplecursoradapter

14
推荐指数
1
解决办法
1161
查看次数