SimpleCursorAdapterを使用してカーソルからのデータをリストビューに取り込みました。それぞれの項目に対してチェックボックスを使って複数の項目を選択できるようにしたいのですが、項目を選択するたびに1つの項目をチェックするだけです。つまり、現在選択されている項目がクリアされます。Android Listview - カーソルを使用して複数の項目を選択できません
ArrayAdapterを使用してリストビューを作成すると問題はありません。私は複数の項目を選択することができます。だから私はそれがなぜSimpleCursorAdapterで動作しないのかわかりません。
これはDialogFragmentで作成されます。
本当にこれで私の髪を引っ張って、pleaeヘルプ!
ここでは、コードです:
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));
は、
また、このリストビューは、他のコントロールを含むダイアログフラグメントの既存のLinearlayout(attributesLinearLayout)に動的に追加されています。私はまた、アレイアダプターや顧客アイテムのレイアウトを含む他のアダプターを拡張しようとしましたが、もう一度、複数のアイテムを選択することができませんでした。
助けてください!
あなたがどんな解決策を見つけるでしたが、私も – dmSherazi
なぜあなたはカスタムカーソルadapteを使用していない同じ問題を抱えていますr?または、複数選択可能なcustomadapterを提供していれば問題は解決しますか? – Droidekas
ArrayAdapterとして機能する場合は、カーソルから配列にデータをコピーしてから、配列アダプターを使用できますか? – Suragch