У меня есть список, заполненный данными курсора с помощью SimpleCursorAdapter. Я хочу сделать это, поэтому я могу выбрать несколько элементов с флажком для каждого элемента, но я могу получить его только для проверки одного элемента за раз, т.е. каждый раз, когда я выбираю элемент, он очищает выбранный элемент.
Он отлично работает, если я заполняю список с помощью ArrayAdapter. Я могу выбрать несколько элементов. Поэтому я не знаю, почему это не работает с SimpleCursorAdapter.
Это создается в диалоговом окне диалога, если это имеет значение.
На самом деле вытаскивая мои волосы, помогите!
Здесь код:
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);
Изменить: Чтобы добавить дополнительную информацию, просмотр списка множественного выбора работает, если я использую этот код, где "items" - это простой массив String:
lv.setAdapter(new ArrayAdapter(this.getActivity(),
android.R.layout.simple_list_item_multiple_choice, items));
Кроме того, это listview динамически добавляется к существующему Linringayout (attributesLinearLayout) в диалоговом фрагменте, который содержит другие элементы управления. Я также попытался расширить другие адаптеры, в том числе адаптер массива и макеты элементов клиента, но это снова не позволило мне выбрать несколько элементов.
Пожалуйста, помогите!