首页 > 解决方案 > 模拟首选项屏幕并显示键值属性

问题描述

我如何在不做太多工作的情况下模仿偏好屏幕的设计或 android 的“编辑联系人”屏幕?我必须为一个对象显示大约 12 个属性,并且不知道如何以一种好的方式显示它们。

我搜索了很多,并没有得出结论。有没有我错过的明显方式?

标签: androidandroid-layoutlayoutpreferenceactivity

解决方案


您实际上可以毫不费力地创建设置活动(具有完整功能)。

File > New > Activity > Settings Activity

它将创建整个功能 - 您只需要在

res > xml > prefs_.xml

您通过屏幕设置的值将保存在指定键下的 SharedPreferences 中。

要拦截通过 UI 配置到 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
        }
     }
  }

推荐阅读