ListView, где каждый элемент является ImageView с радиобоксом, и один элемент может быть выбран за один раз? - PullRequest
3 голосов
/ 19 октября 2010

Я рву на себе волосы из-за этого.Я хотел бы 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, я вижу переключатели, но выбор их ничего не делает,Кроме того, я реализовал прослушиватель выбора для представления списка, и он не срабатывает при нажатии элементов.Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...