PreferenceFragment的使用

作者: 奔跑吧李博 | 来源:发表于2022-06-04 12:00 被阅读0次

最近项目开发中使用到了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等。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory android:title="设置" />

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="wifi_download"
        android:title="下载"
        android:summary="wifi下自动下载"/>

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="darkmode"
        android:title="夜间模式"
        android:summary="开启夜间模式"/>

    <SwitchPreference
        android:key="notify"
        android:title="通知"
        android:summary="是否开启通知"/>

    <Preference
        android:key="clear_cache"
        android:title="缓存"
        android:summary="是否清理缓存"/>
</PreferenceScreen>
Preference常用属性

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

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

相关文章

网友评论

    本文标题:PreferenceFragment的使用

    本文链接:https://www.haomeiwen.com/subject/wedcmrtx.html