Настройки Android: неограниченный, расширяемый список значений

Я хотел бы разрешить пользователю вводить (не заранее определенное количество) значений для предпочтения приложения Android. Существующие примеры, которые приходят на ум, — это приложения будильника, которые можно найти на различных смартфонах (iPhone, HTC Android, ...), где пользователь может добавить время будильника.*

Может ли кто-нибудь придумать простой способ предоставить пользователю Android расширяемый список редактируемых значений предпочтений?

До сих пор я думал о:

  • Значения, разделенные запятыми, в простом текстовом поле.
  • Ограничьте пользователя, скажем, 10 значениями и реализуйте их как 10 редактируемых элементов предпочтений (EditTextPreference).
  • Сделаю собственное причудливое вспомогательное приложение только для этих настроек (хотя я пока не уверен, как бы я это сделал).

Любые другие идеи?

Крис

*(дополнительными полезными функциями по аналогии с примером будильника могут быть: автоматическое упорядочение по значению/времени, способ активировать/деактивировать определенные значения, колесо для выбора числовых значений, аналогичное колесикам выбора времени и даты на iPhone или Андроид).


person Chris    schedule 04.07.2010    source источник


Ответы (1)


Я хотел бы разрешить пользователю вводить (не заранее определенное количество) значений для предпочтения приложения Android.

Почему предпочтения? Почему бы не использовать реляционную базу данных или собственную неструктурированную файловую структуру (например, JSON, CSV)?

Существующие примеры, которые приходят на ум, — это приложения будильника, которые можно найти на различных смартфонах (iPhone, HTC Android, ...), где пользователь может добавить время будильника.*

Каковы ваши доказательства того, что они используют предпочтения? Например, приложение будильника не использует PreferenceActivity.

Может ли кто-нибудь придумать простой способ предоставить пользователю Android расширяемый список редактируемых значений предпочтений?

Используйте ListView с выбором меню опций для добавления элементов. Нажатие на элемент вызывает редактор этого элемента, позволяющий обновлять (и, с помощью выбора меню параметров, удалять). Ведь этим и занимается приложение-будильник.

автоматический упорядочивание по стоимости/времени

Научите своего ListAdapter сортировать.

способ активировать/деактивировать определенные значения

Используйте набор ListView для CHOICE_MODE_MULTIPLE с CheckedTextView. Или управляйте своими собственными флажками (так, как это делает приложение будильника).

колесико для выбора числовых значений, аналогичное колесикам выбора времени и даты на iPhone или Android

В Android нет «колес выбора времени и даты». Есть средства выбора времени и даты, которые используют кнопки, а не колеса.

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

person CommonsWare    schedule 04.07.2010
comment
Большое спасибо, CommonsWare, за ваши замечательные предложения. На данный момент я сделал это с помощью простых настроек, но, конечно, столкнулся с ограничениями этого подхода. Я буду иметь ваши предложения в виду для будущих улучшений! - person Chris; 22.07.2010
comment
Привет, @CommonsWare, ссылка на исходный код приложения будильника не работает. - person toobsco42; 24.11.2012