Как я могу динамически создать настройки Android? - PullRequest
19 голосов
/ 25 января 2012

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

Итак, здесь есть два ключа:

  1. Добавление к главному экрану настроек
  2. Начиная activityForResult, когда элемент нажат. Эта деятельность покажет другой вид предпочтений (ползунки, флажки и т. д.), где пользователь может манипулировать ими, а затем вернуть новые значения, которые будут сохранены в структура данных.

Изображение:
http://i.stack.imgur.com/eZsfh.png

Ответы [ 3 ]

1 голос
/ 06 апреля 2012

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

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

Если вам просто нравится интерфейс предпочтений, выМожно, конечно, взглянуть на исходный код Android, чтобы увидеть, как он реализован, и при этом позволить собственной логике управлять вариантом этого пользовательского интерфейса.

1 голос
/ 01 апреля 2012

Я бы предложил отправиться по дороге Фрагментов - в частности, PreferenceFragment: http://developer.android.com/reference/android/preference/PreferenceFragment.html

Почему я думаю, что это будет хорошо для вас:

Кроме того, показанные предпочтения будут следовать визуальному стилю системные настройки. Легко создать иерархию предпочтений (это может быть показано на нескольких экранах) через XML. По этим причинам это рекомендуется использовать этот фрагмент (как суперкласс) для настройки в приложениях.

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

На самом деле создание экранов предпочтений динамически легко. Вы можете сделать это в коде (ищите пример приложения API Demos PreferenceFromCode.java) или расширив XML-файл, который вы можете написать (PreferencesFromXml.java). Трудно придумать разумный пользовательский интерфейс и серверную часть хранилища, чтобы пользователь мог составлять и хранить эти динамические коллекции предпочтений.

...