Выделить несколько выбранных / проверенных / активированных в ListView

Вау, документация ужасна, когда дело доходит до выбора элемента списка. Все, что мне нужно, – это выбрать и выделить несколько элементов в списке. Я просматривал веб- android:choiceMode="multipleChoice" и видел ссылки на android:choiceMode="multipleChoice" , который, как я предполагаю, позволяет вам выбирать несколько элементов. Но где я могу получить выбранные элементы в своей деятельности? И как получилось, когда я пытаюсь выбрать несколько элементов, используя setSelection(position) , ранее выделенный элемент исчезает?

Google также описывает в View.setActivated(boolean) что

Обратите внимание, что активация не совпадает с выбором. Выбор – свойство переходного процесса, представляющее представление (иерархию), с которым пользователь взаимодействует. Активация – это долгосрочное состояние, при котором пользователь может перемещать представления в и из. Например, в режиме списка с включенным одним или несколькими параметрами активируются представления в текущем наборе выбора. (Хм, да, мы очень сожалеем о терминологии здесь.)

Так я должен использовать активацию вместо выбора? Этот ответ SO говорит о том, как «активирована» только версия «Check» после HoneyComb. Но если вы предполагаете использовать «активированный» для множественного выбора, в чем смысл android:choiceMode="multipleChoice" в первую очередь?

Поэтому, видимо, меня увезли с неправильной дорожки, потому что я должен был искать выделенные «проверенные» предметы, а не «выбранные» предметы. Таким образом, многие ответы говорили мне использовать selector с моим макетом ListView с помощью android:listSelector="@drawable/myselector , но мне действительно нужно было использовать selector с макетом строк. Решение на самом деле довольно простое, я буду Разместите его ниже:

рисуем / rowbackgroundselector.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_activated="true" android:drawable="@android:color/holo_green_light"/> </selector> 
  • Обратите внимание, как вы используете «state_activated», чтобы определить, проверен ли элемент «…»

рисуем / mylistrow.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:background="@drawable/rowbackgroundselector" android:padding="10sp" /> 
  • С помощью селектора для фона строки

MainActivity.onListItemClick ()

 public void onListItemClick(ListView l, View v, int position, long id) { getListView().setItemChecked(pos, true); } 

Наконец, убедитесь, что ваш адаптер использует ваш собственный макет строки

 mAdapter = new ArrayAdapter<FileTag>(this.getActivity(), R.layout.mylistrow, mList); 
Intereting Posts
Android Связать ссылки textColor проигнорирован, возможно переопределение CSS-кода? Android Seek Bar в строке состояния Проблемы с диалоговыми кнопками оповещения в Android L В EditText всплывающее диалоговое окно при нажатии на определенное подмножество текста Как скрыть / показать группы маркеров по категориям с помощью Google Maps в Android? Значок панели действий, скрытый после того, как SearchView расширяется Заполнение шаблона вместо цвета с использованием заливки заливки algroithim android Android добавить изображение к кнопке CollapsingToolbarLayout не распознает прокрутку Напишите в NTAG216 после аутентификации? Android Studio: каталог проектов по умолчанию Есть ли метод setSharedElementsUseOverlay () для переходов Фрагмента? Не удается увидеть отладочный вывод при запуске эмулятора Android. Ошибка ввода-вывода при использовании почты, активации и дополнительных файлов jar в android stdio Бесплатная раздача