Android设置页面之PreferenceFragment的简单使用示例

xiaoxiao2025-07-06  10

1.PreferenceFragment介绍

a.PreferenceFragment实际为Fragment的一个子类

b.创建一个PreferenceFragment需要绑定一个xml来显示视图

c.绑定后没就可以当作普通Fragment使用,只是每new一个实例就会创建一个SharePreference,把之前绑定的xml中的值写入保存(即运行时候,会自动在/data/data/<packagename>/shared_prefs/目录生成一个文本文件)。

 

2.使用步骤

a.创建一个PreferenceFragment子类

package com.yuncai.menjin.transition; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.support.annotation.Nullable; import android.util.Log; /** * Function: * Created by TianMing.Xiong on 18-10-25. */ public class NavigationSummary extends PreferenceFragment implements Preference.OnPreferenceChangeListener{ public static NavigationSummary newInstance() { return new NavigationSummary(); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // xml文件夹下的一个xx_preference.xml中一个<PreferenceScreen/>标签对应一个PreferenceFragment addPreferencesFromResource(R.xml.preferences); // 获取级别描述(组) Preference set_navigation = getPreferenceManager().findPreference("set_navigation"); CharSequence summary = set_navigation.getSummary(); CharSequence title = set_navigation.getTitle(); Log.e("TAG","summary:"+summary+",title:"+title); // 监听开关按钮 Preference navigation_is_show_and_hide = getPreferenceManager().findPreference("navigation_is_show_and_hide"); // 用于监听哪个Preference的回调,用key标识 navigation_is_show_and_hide.setOnPreferenceChangeListener(this); } /** * 必须返回true,否则newValue值永远是false * @param preference * @param newValue * @return */ @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); Log.e("TAG","key:"+key+",value:"+newValue); return true; } } // 输出: // 01-03 18:30:16.160 3450-3450/com.yuncai.menjin.transition E/TAG: summary:用于导航栏设置,title:导航栏设置 // 01-03 18:30:24.720 3450-3450/com.yuncai.menjin.transition E/TAG: key:navigation_is_show_and_hide,value:false // 01-03 18:30:26.130 3450-3450/com.yuncai.menjin.transition E/TAG: key:navigation_is_show_and_hide,value:true

b.在res文件夹下创建一个xml文件夹,新建一个以<PreferenceScreen>为根节点的xml文件preferences.xml

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 设置的类别 --> <PreferenceCategory android:key="set_navigation" android:summary="用于导航栏设置" android:title="导航栏设置"> <CheckBoxPreference android:key="navigation_is_show_and_hide" android:summary="使设备底部导航栏不可见" android:defaultValue="false" android:title="隐藏导航栏"/> </PreferenceCategory> </PreferenceScreen>

c.在fragment中绑定

即之前fragment中的代码

addPreferencesFromResource(R.xml.preferences);

3.效果图

转载请注明原文地址: https://www.6miu.com/read-5032646.html

最新回复(0)