Использование ListView для создания экрана настроек в Android?

Я разрабатываю свое первое приложение для Android, и я бы хотел создать экран настроек.

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

Как определить такой экран?

Я понимаю, что я могу использовать ListView, но это, по-видимому, в первую очередь предназначено для обслуживания динамических данных с помощью ListAdapter, где каждый элемент обслуживается в том же формате. Кажется, что можно создать разные элементы (то есть некоторые с флажком, некоторые с двумя текстовыми строками, некоторые с иконкой), создав свой собственный ListAdapter и переопределяя getView, но это похоже на излишний. Должен ли я использовать ListView для этой цели?

Нет необходимости вручную создавать и форматировать ListView – в API есть способы создания экранов настроек.

Наиболее очевидным является PreferenceActivity .

Вы можете определить все ваши предпочтения в XML-файле, немного как макет, а затем загрузить их с помощью addPreferencesFromResource() или вы можете создать несколько объектов PreferenceScreen в коде и таким образом заполнить их объектами Preference .

Лучше всего было бы посмотреть приложение API Demos, представленное в Android API. Это содержит множество хороших примеров управления предпочтениями. Вот как он создает настройки из кода и вот пример XML-файла предпочтений . Существуют и другие примеры, показывающие более сложные вещи, такие как зависимости предпочтений и слушатели предпочтений.

Фактически во встроенном приложении будильника для редактирования и создания сигналов тревоги есть два действия: один для создания и один для редактирования .

Активность Create Alarm является первой с цифровыми часами. Действие « Редактировать сигнализацию» запускается щелчком по указанному сигналу тревоги из операции « Создать сигнал тревоги» .

Edit Alarm реализует PreferenceActivity , но Create Alarm более сложна (пользовательский адаптер курсора для отображения аварийных сигналов).

Посмотрите на источники :

  • Создать активность будильника
  • Редактировать активность сигнала тревоги