Использование ListView для создания экрана настроек в Android? - PullRequest
61 голосов
/ 08 января 2010

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

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

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

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

Ответы [ 2 ]

121 голосов
/ 08 января 2010

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

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

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

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

2 голосов
/ 08 января 2010

На самом деле во встроенном приложении сигналов тревоги для редактирования и создания сигналов тревоги есть два действия, одно для создания и одно для править .

Операция Создать будильник является первой с цифровыми часами. Операция Редактировать сигнал тревоги запускается нажатием на указанный в списке сигнал тревоги из действия Создать сигнал тревоги .

Редактировать будильник реализует PreferenceActivity, но Создать будильник более сложный (настраиваемый адаптер курсора для вывода списка тревог).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...