Я рву на себе волосы из-за этого.Я хотел бы ListView, где каждый элемент в списке является ImageView.Я хочу, чтобы рядом с каждым элементом был переключатель, и одновременно можно выбрать только один элемент (т. Е. Режим единого выбора).Этот код прекрасно работает для создания списка текстового поля с переключателями:
ListView listView = ...
String [] value = {"test1","test2"};
listView.setAdapter(
new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_single_choice,value
));
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Для моих элементов ImageView я реализовал собственный ArrayAdapter.В методе getView моего объекта ArrayAdapter я загружаю следующий xml-файл для каждой строки списка:
например
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:gravity="center"
>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:paddingLeft="6dip"
android:paddingRight="6dip"
/>
<ImageView android:id="@+id/preview"
android:layout_width="75dip" android:layout_height="100dip"
android:scaleType="fitCenter"
android:enabled="true"
android:focusable="false"
/>
</RelativeLayout>
Я скопировал элемент CheckedTextView из simple_list_item_single_choiceXML-файл, использованный в предыдущем примере.Я предполагаю, что ListView должен искать элемент с идентификатором «text1», чтобы использовать его для отображения статуса выбора (я просто догадываюсь здесь, так как не могу понять, откуда должны появиться переключатели).Если я не включаю элемент CheckedTextView, я не вижу никаких переключателей вообще.
Когда я использую свой пользовательский адаптер с вышеупомянутым файлом XML, я вижу переключатели, но выбор их ничего не делает,Кроме того, я реализовал прослушиватель выбора для представления списка, и он не срабатывает при нажатии элементов.Что я делаю не так?