PreferenceScreen preference是偏好,首选的意思,PreferenceScreen个人翻译成 “偏好显示”,明白这个意思就好,就是说根据特点灵活的定义显示内容风格,一个屏幕可以包含多个风格,像系统自带的声音设置界面。
实现这种显示效果其实很简单,只需要借助PreferenceScreen类即可。在项目资源文件中新建xml文件夹,在里面新建preferences.xml文件.
根元素为PreferenceScreen 代表显示一整个屏幕,内部嵌套PreferenceCategory标签,表示偏好类别,在PreferenceCategory标签内部可以随便存放复选框,输入框,列表等显示控件.可包含的控件内容在android.preference包下可查阅.xml文件编写好后,需要加载到activity中,对于偏好显示的xml加载,可以使用PreferenceActivity中的addPreferencesFromResource(),所以Activity需要继承PreferenceActivity.既然显示的屏幕中包含复选框,输入框的控件,我们必然对选择与否,输入框内容感兴趣,我们要怎样获取屏幕的内容呢?
复写activity中的onPreferenceTreeClick 方法,在对屏幕显示的内容进行操作时,会触发此方法,在方法内部通过调用
SharedPreferences contentPreference = preference.getSharedPreferences();
boolean checkbox_toggle = contentPreference.getBoolean("checkbox_preference", false);
String animalName = contentPreference.getString("edittext_preference", "default");
即可得到屏幕上输入的内容,与使用SharedPreference对象一样,通过key-value 的形式获取,其中key是xml控件标签中key属性对应的值.
显示效果:
对应xml文件:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="显示一排偏好">
<CheckBoxPreference
android:key="checkbox_preference"
android:title="开关偏好"
android:summary="这是一个开关按钮" />
</PreferenceCategory>
<PreferenceCategory
android:title="基于对话框的偏好">
<EditTextPreference
android:key="edittext_preference"
android:title="文本输入偏好"
android:summary="使用一个文本框对话框"
android:dialogTitle="输入你的宠物" />
<ListPreference
android:key="list_preference"
android:title="列表偏好"
android:summary="使用一个列表对话框"
android:entries="@array/entries_list_preference"
android:entryValues="@array/entryvalues_list_preference"
android:dialogTitle="选择一个" />
</PreferenceCategory>
<PreferenceCategory
android:title="启动偏好">
<PreferenceScreen
android:key="screen_preference"
android:title="屏幕"
android:summary="显示另一个偏好屏幕">
<!-- You can place more preferences here that will be shown on the next screen. -->
<CheckBoxPreference
android:key="next_screen_checkbox_preference"
android:title="开关偏好"
android:summary="另一个屏幕上的偏好" />
</PreferenceScreen>
<PreferenceScreen
android:title="意图偏好"
android:summary="通过意图启动一个Activity">
<intent android:action="android.intent.action.VIEW"
android:data="http://www.android.com" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory
android:title="偏好属性">
<CheckBoxPreference
android:key="parent_checkbox_preference"
android:title="父开关"
android:summary="这是一个父开关" />
<CheckBoxPreference
android:key="child_checkbox_preference"
android:dependency="parent_checkbox_preference"
android:layout="?android:attr/preferenceLayoutChild"
android:title="子开关"
android:summary="这是一个子开关" />
</PreferenceCategory>
</PreferenceScreen>
- 大小: 43 KB
- 大小: 48.3 KB
分享到:
相关推荐
在本"安卓PreferenceScreen使用详细Demo"中,我们将深入探讨如何利用这一功能来构建用户友好的设置页面。 首先,我们需要了解PreferenceScreen的基本结构。在res/xml目录下创建一个新的XML文件,例如`settings.xml`...
这可以通过继承`Preference`类并覆盖其方法来实现,例如重写`onBindView()`以改变视图显示,或者重写`onClick()`来处理点击事件。 ```java public class CustomPreference extends Preference { public ...
`Preference`类是Android系统中用于创建用户设置界面的基础组件,通常在设置页面中使用。VNTNumberPickerPreference通过重写`onDialogClosed`等方法,实现了当用户在对话框中选择完数字后,自动保存并更新首选项的值...
为了在代码中使用PreferenceActivity,我们需要继承PreferenceActivity类,并在onCreate()方法中调用addPreferencesFromResource()方法,传入包含偏好设置的XML资源ID: ```java public class SettingsActivity ...
通过使用PreferenceScreen和相关的Preference元素,开发者可以在布局XML文件中定义各种类型的偏好设置,如CheckBoxPreference、SwitchPreference、EditTextPreference等。 1. **PreferenceScreen**: 这是设置界面的...
- 这些Fragment类允许开发者加载并显示XML中的偏好设置布局,并处理用户交互事件。 4. **UI定制**: - 开发者可以通过自定义`Preference`类来扩展默认行为,实现更复杂的偏好设置逻辑。 - 使用样式(Styles)和...
1. **PreferenceFragment**:`PreferenceFragment`是Android的一个类,继承自`Fragment`,用于展示一个包含用户偏好设置的界面。它可以加载XML布局文件,这些文件通常包含`<Preference>`及其子类(如`...
它的主要属性有`android:key`(用于标识这个偏好设置的唯一ID)、`android:title`(显示的标题)和`android:summary`(描述信息)。 `SwitchPreference`与`CheckBoxPreference`类似,但提供了滑动开关的视觉效果,...
使用`PreferenceActivity`可以让开发者避免编写大量的UI代码,只需在XML布局文件中定义偏好设置,然后在代码中加载即可。 ### 2. 创建`PreferenceActivity` 首先,我们需要创建一个新的Activity,并让它继承自`...
- 链接设置:可以使用`PreferenceScreen`作为容器,组织多个设置屏幕,实现类似层级结构的设置菜单。 3. **PreferenceActivity的源码分析** - `addPreferencesFromResource(int resid)`方法是加载设置布局的关键...
总之,`PreferenceActivity`和`Preference`类是Android开发中构建设置界面的标准工具,它们使得开发者能够轻松地创建用户友好的设置界面,并方便地处理用户的偏好设置。理解并熟练使用这两个组件,对于开发高质量的...
6. **集成到设置界面**:在XML布局文件中,将`MyColorPickerPreference`添加到PreferenceScreen中,设置对应的key和默认值,这样在运行时就能看到自定义的色彩选择偏好项。 7. **源码解析**:通过阅读给定的博客...
通过继承Preference类并自定义布局,开发者可以轻松定制自己的设置项。 二、Preference的种类 1. CheckBoxPreference:代表一个复选框,用户可以勾选或取消。 2. EditTextPreference:用于用户输入文本,通常用于...
- **显示联系人头像**:获取到联系人ID后,可以通过ContactsContract.CommonDataKinds.Photo类获取联系人的头像URI,然后使用 Glide 或 Picasso 等图片加载库显示头像。 - **添加联系人**:使用ContentResolver的...
最后,我们还可以自定义Preference的外观和行为,通过继承`Preference`类并覆写其构造函数、`onBindView`和`onCreateIntent`等方法,以实现更复杂的偏好设置需求。 总之,这个“Pro Android学习:Preference(首...
这个类使得开发者能够使用XML布局文件来定义各种偏好设置项,如开关、选择列表、输入框等,并将它们动态地加载到一个Activity中。在Android开发中,处理用户设置和首选项时,PreferenceActivity扮演着重要的角色。 ...
Preference组件在Android开发中扮演着重要的角色,它主要用于管理应用的用户设置和偏好。这个"Preference demo"显然是一个示例项目,旨在展示如何在Android应用中有效地使用Preference。"good good study, day day ...
- `Preference`的`android:defaultValue`属性用于设定默认值,当没有已保存的偏好时,将使用这个值。 5. **自定义Preference**: - 如果系统提供的`Preference`类型无法满足需求,可以继承`Preference`类并实现...
例如,通过继承Preference类,我们可以覆盖onBindView方法来改变视图的显示,或者重写onClick方法来处理点击事件。同时,我们还可以利用setSummaryProvider方法来自定义摘要内容,根据用户输入动态更新。 对于更...
这需要使用`SharedPreferences`来存储用户的偏好设置,并通过`PreferenceFragment`或`PreferenceScreen`来创建设置界面。 5. **动态权限请求**: Android 6.0(API级别23)以后,应用需要在运行时请求权限,比如读取...