Подтвердить что ты не робот

Как я могу динамически создать предпочтение Android?

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

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

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