PreferenceFragment的使用

最近项目开发中使用到了PreferenceFragment来做一个设置页面的功能,所以就写一个小例子记录一下使用过程。

效果图:

首先fragment继承于PreferenceFragment,使用addPreferencesFromResource添加布局。

class SettingPreferenceFragment: PreferenceFragment() {
    private var checkBoxWifi: CheckBoxPreference?= null
    private var checkBoxDarkMode: CheckBoxPreference?= null
    private var switch: SwitchPreference?= null
    private var clearCache: Preference?= null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        addPreferencesFromResource(R.xml.settings)

        initView()
    }

    private fun initView() {
        checkBoxWifi = findPreference("wifi_download") as CheckBoxPreference?
        checkBoxDarkMode = findPreference("darkmode") as CheckBoxPreference?
        switch = findPreference("notify") as SwitchPreference?
        clearCache = findPreference("clear_cache")

        checkBoxWifi?.onPreferenceChangeListener = object: Preference.OnPreferenceChangeListener {
            override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean {
                return true
            }
        }
    }
}

在xml文件中添加控件,比如CheckBoxPreference、SwitchPreference、Preference等。




    

    

    

    

    

Preference常用属性

android:key 存储key,这个就是SharedPreferences存储时的key
android:title 标题
android:defaultValue 默认值
android:summary 副标题

然后在fragment中通过findPreference找控件,可用onPreferenceChangeListener设置监听事件。

你可能感兴趣的:(PreferenceFragment的使用)