我有一个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);
编辑:只是为了添加一些额外的信息,如果我使用这个代码,多选项列表视图工作,其中"项目"是一个简单的字符串数组:
lv.setAdapter(new ArrayAdapter(this.getActivity(),
android.R.layout.simple_list_item_multiple_choice, items));
此外,此listview将动态添加到包含其他控件的dialogfragment中的现有Linearlayout(attributesLinearLayout).我也尝试扩展其他适配器,包括阵列适配器和客户项目布局,但这又不允许我选择多个项目.
请帮忙!!