Mimi c экран настроек и отображение атрибутов ключ-значение - PullRequest
0 голосов
/ 14 января 2020

Как бы я имитировал c дизайн экрана настроек или экрана "Изменить контакт" android, не выполняя слишком много работы? Мне нужно отобразить ~ 12 атрибутов для объекта, и я не могу понять, как правильно их отобразить.

  • не для каждого атрибута существует очевидный значок -> мы хотим ярлыки?
  • отображение текстовых представлений под другими текстовыми представлениями, имеющими значок, выглядит ужасно, если вы не хотите вручную добавлять поля. (отступ)
  • PreferenceFragment имеет своего рода «Заголовок», который можно использовать в качестве метки, и значение, которое было бы еще более совершенным, поскольку у меня есть некоторые интерактивные элементы (средство выбора элементов).
  • Но использование preferencefragment без SharedPreferences и вместо отображения произвольных объектов, очевидно, является (плохим?) Хаком.

Я много искал и не пришел к выводу. Есть ли очевидный способ, который я пропустил?

1 Ответ

0 голосов
/ 14 января 2020

На самом деле вы можете создать настройку действий (с полной функциональностью) без особых усилий.

Go до File > New > Activity > Settings Activity.

Это создаст всю функциональность - вам нужно только указать Переключатели, списки в

res > xml > prefs_.xml

Значения, которые вы устанавливаете с помощью экрана, будут сохранены в SharedPreferences под указанной клавишей.

Для перехвата значений, настроенных с помощью Пользовательский интерфейс к SharedPreferences, вы можете добавить это в SettingsActivity:

 class SettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.pref_general, rootKey)

        findPreference<ListPreference>("system_theme")?.setOnPreferenceClickListener { 
            val value = (it as? ListPreference)?.value
            //send value to server
            return@setOnPreferenceClickListener true
        }
     }
  }
...