首页系统preferencecategory(preferencecategory)

preferencecategory(preferencecategory)

编程之家2024-06-02108次浏览

一、如何设置默认值为 SwitchPreference 的 android 吗

您好,很高兴为您解答:

preferencecategory(preferencecategory)

我为我的问题找到解决办法并将发布它的情况下有人有同样的问题。

正如我告诉,我以编程方式编写首选项

PreferenceScreen root= getPreferenceManager().createPreferenceScreen(this);

PreferenceCategory catView= new PreferenceCategory(this);

catView.setTitle(R.string.preference_category_view);

root.addPreference(catView);

preferencecategory(preferencecategory)

final SwitchPreference switchSplash= new SwitchPreference(this);

switchSplash.setKey(PreferenceKeys.SPLASH);

//-----the above code----

switchSplash.setChecked(false);// LINE 1

catView.addPreference(switchSplash);// LINE 2

在 debug我发现真正的价值设置在行 1,但当我将switchSplash添加到catView, switchSplash的值重置为false,因为catView设置的值从 prefereces xml。

preferencecategory(preferencecategory)

这就是为什么我改变成所需的所有值xml

SharedPreferences.Editor editor= root.getPreferenceManager().getSharedPreferences().edit();

editor.putBoolean(PreferenceKeys.SPLASH, true);

editor.commit();

这是它。

如果我的回答没能帮助您,请继续追问。

二、PreferenceFragment去完成设置页面

大多数时候我们都是这样去使用SharedPreferences

在app设置页面的开发中也会用到对设置项的保存,我们也会用到SharedPreferences去保存这些设置项,Android官方提供了更为简单针对设置页面使用SharedPreferences方法,那就是PreferenceActivity和PreferenceFragment.下面来说下如何使用.

PreferenceActivity主要针对3.0以前的版本,PreferenceFragment则更为灵活,其实使用方法上面两者大致一样,所以PreferenceActivity就不展开讲解,直接来看PreferenceFragment的使用

一般来说Fragment会要求去关联一个布局的layout,但是在PreferenceFragment则不需要这样做,我们需要去自定义一个xml加入首选项(首选项就是配置项,官方称为首选项). xml根节点必须是一个PreferenceScreen元素. PreferenceScreen里面的子项都作为一个独立的控件显示在界面里,同时还具备保存属性.

显示效果如下

以上只展示了CheckBoxPreference和ListPreference,还有其它很多Preference控件,具体可以查阅官方文档有关Preference的字类.

如果设置项目过多,我们可以进行分类展示,有如下两种方式可以来实现.

加入PreferenceCategory的属性可以进行标题的划分.

使用PreferenceCategory属性可以划分子屏幕

有时候我们的设置项目并不是保存一个配置项,而是去跳转到一个新的画面.我们可以使用如下配置来使得首选项跳转一个网页

当然你也可以配置显式的intent进行跳转,具体可以参见官方文档.

可以设置默认值给Preference控件

在进入设置页面可以调用

对默认值进行初始化应用,这个接口最常用的地方就是去恢复设置.

通常还有种需求是点击一个首选项跳转到另外一个屏幕,当然这个功能也可以通过PreferenceScreen来完成,但是使用PreferenceScreen不能兼容平板的情况就像下面这样

如果要实现这种效果就要使用到hearders

android:fragment用来标记点击后跳转的Fragment,extra用来传递参数,可以在Fragment中通过getArguments()来获取传递过来的bundle数据,这个数据最大的作用就是用来在同一个preference fragment中加载不同的preference xml.

如果要显示这个标头文件的内容需要去重写onBuildHeaders方法.

preference-headers这个标签只能支持3.0以后的版本,如果要兼容3.0以前的版本需要另外在写个xml作为兼容

再以如下方式加载

onBuildHeaders这个回调只会在Build.VERSION_CODES.HONEYCOMB(3.0系统)以上的版本调用。

另外我们必须要注意的一点,目前首选项不会再您调用registerOnSharedPreferenceChangeListener()时存储对监听器的强引用。但是,您必须存储对监听器的强引用,否则它将很容易被当作垃圾回收。

上面就是关于如何使用系统提供具有Preference功能的UI控件来打造一个设置界面.更多详细关于自定义Preference等可以参考官方文档

联想y485p(联想y485p好用吗)bd是什么格式(bd是什么格式)