Использование ListView для создания экрана настроек в Android?
Я разрабатываю свое первое приложение для Android, и я бы хотел создать экран настроек.
Я бы хотел, чтобы экран выглядел так же, как на экране собственных настроек телефона, и на собственном экране создания/редактирования сигналов. Таким образом, различные типы (статически заданные) элементы вертикально уложены с тонкой линией между ними.
Как определить такой экран?
Я понимаю, что я могу использовать ListView, но это, в основном, предназначено для обслуживания динамических данных с помощью ListAdapter, где каждый элемент обслуживается в том же формате. Кажется, возможно создать разные элементы (то есть некоторые с флажком, некоторые с двумя текстовыми строками, некоторые с иконкой), создав мой собственный ListAdapter и переопределяя getView, но это похоже на излишний. Должен ли я использовать ListView для этой цели?
Ответы
Ответ 1
Нет необходимости вручную создавать и форматировать ListView
- в API есть способы создания экранов настроек.
Наиболее очевидным является PreferenceActivity
.
Вы можете определить все ваши предпочтения в файле XML, немного как макет, а затем загрузить их с помощью addPreferencesFromResource()
или вы можете создайте несколько объектов PreferenceScreen
в коде и заполните их Preference
таким образом.
Лучше всего было бы посмотреть приложение API Demos, представленное в Android API. Это содержит множество хороших примеров управления предпочтениями. Здесь как он создает предпочтения из кода и здесь пример настроек XML файла. Существуют и другие примеры, показывающие более сложные вещи, такие как зависимости предпочтений и прослушиватели предпочтений.
Ответ 2
Фактически во встроенном приложении будильника для редактирования и создания сигналов тревоги есть два действия: один для создания и один для редактирования.
Действие Create Alarm - это первое с цифровыми часами.
Действие "Редактировать тревогу" запускается щелчком по указанному сигналу тревоги из действия "Создать сигнал тревоги".
Edit Alarm реализует PreferenceActivity
, но Create Alarm более сложный (пользовательский адаптер курсора для отображения тревог).
Посмотрите источники: