один вид деятельности, несколько просмотров? - PullRequest
0 голосов
/ 03 ноября 2011

Я хочу создать список с вариантами сортировки по возрастанию или убыванию. Я могу сделать это, используя разные намерения. Есть ли способ сделать это без новых намерений? Пример, который приходит мне на ум - это «Управление приложениями в Android». Сортировка по имени и размеру происходит на одном экране. Как это сделать?

Редактировать - у меня есть список, скажем, 20 пунктов. Прямо сейчас я сортирую элементы списка и отображаю только первые 5 элементов. Я хочу добавить опцию для отображения 5 нижних элементов тоже. Я сделал это, создав новый класс, точно такой же, как предыдущий класс с верхним массивом, замененным нижним массивом.

Ответы [ 4 ]

1 голос
/ 03 ноября 2011

Вы можете пересортировать базовую структуру данных перед установкой в ​​адаптере.

0 голосов
/ 30 апреля 2012

В классе ArrayAdapter есть встроенный метод для сортировки с помощью «sort (Comparator Comparator)», при условии, что вы захотите написать компараторы, необходимые для сортировки.Я использую этот метод для сортировки «на месте», без необходимости перезагружать адаптер с переупорядоченным списком извне.

Проверьте http://developer.android.com/reference/android/widget/ArrayAdapter.html

и http://developer.android.com/reference/java/util/Comparator.html

0 голосов
/ 03 ноября 2011

Уманг, у меня сейчас нет затмения, и я просто хочу выразить свой ход мыслей, чтобы решить вашу проблему. Пожалуйста, напишите коды сами и проверьте их.

  1. С вашим списком просмотра должен быть связан адаптер, внутри которого вы можете установить переменную для мониторинга режима заказа, например: private int mode;
  2. Внутри метода getView () адаптера, основанного на mode, возвращайте элементы по своему усмотрению. Я думаю, что вы выполнили описанные выше шаги, поскольку вы уже можете изменить заказ.
  3. В первом действии вы можете установить какое-либо событие для пользователя, чтобы изменить порядок, т. Е. Через меню. Итак, вы переопределяете public boolean onCreateOptionsMenu (Menu menu).
  4. В соответствующем public boolean onOptionsItemSelected (MenuItem item) вы устанавливаете значение mode на основе индекса элемента, выбранного пользователем.
  5. Позвоните adapter.notifyDataSetChanged(), чтобы уведомить систему об изменении данных для listView.
  6. вызовите listView.invalidate(), чтобы показать новый ListView.
0 голосов
/ 03 ноября 2011

Обычно список отображается с использованием ListView. ListViews обычно с ними связан адаптер. Представления перечислены в порядке их существования в адаптере. Таким образом, чтобы изменить порядок элементов в списке, все, что вам нужно сделать, это установить для него новый адаптер, где элементы упорядочены по вашему желанию (вы также можете попробовать изменить порядок элементов существующего адаптера, но Я не знаю, можно ли это сделать).

Вы можете увидеть Пример ListView Hello World , чтобы лучше понять ListViews.

...