android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...
Android PreferenceActivity与PreferenceFragment
前言
转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一下PreferenceActivity、PreferenceFragment和headers的使用。
PreferenceActivity
我们先通过一个简单的例子来学习一下PreferenceActivity的使用。
preferences_scenario_1.xml
我们先通过xml文件来定义一个简单的preference界面,res/xml/preference_scenario_1.xml:
android:summary="@string/next_screen_title"
android:title="@string/next_screen_summary" >
android:key="@+id/next_screen_checkbox_preference"
android:summary="@string/checkbox_summary"
android:title="@string/checkbox_title" />
android:summary="@string/category_title">
android:defaultValue="false"
android:key="pref_otificationskey"
android:title="@string/checkbox_title" >
android:entries="@array/people_name"
android:entryValues="@array/people_value"
android:key="pref_SyncFrequencykey"
android:summary="@string/list_summary"
android:title="@string/list_title" >
涉及到的string.xml内容如下:
下一屏选项
下一屏
我很帅
我刷吗?
我喜欢
人名列表
我喜欢的人名
Preference Activity
在Android3.0之前,PreferenceActivity是用来呈现Preference Screens的,所以如果要支持Android3.0之前的系统,还是要继承PreferenceActivity类来呈现Preference Screens。示例代码如下:
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class CustomPreferenceActivity extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_scenario_1);
}
}
重写oncreate方法,并且调用addPreferencesFromResource方法来加载xml布局文件。
别忘了,需要在AndroidManifest.xml中声明这个CustomPreferenceActivity。
注意:
PreferenceActivity的addPreferencesFromResource方法已经在Android3.0(API LEVEL 11)之后废弃了。Android3.0之后,推荐使用PreferenceFragment来呈现Preference Screen。
演示
在其他activity里,可以通过startActivity来启动这个PreferenceActivity,演示图如下:
PreferenceFragment
xml布局文件
xml文件我们可以复用上面PreferenceActivity的布局文件。
Preference Fragment
示例代码如下:
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class CustomPreferenceFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_scenario_1);
}
}
Preference Activity管理Fragment
示例代码如下:
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class CustomPreferenceActivity extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new CustomPreferenceFragment()).commit();
}
}
适配
为了同时适配Android3.0之前之后的系统,我们可以通过Build.VERSION.SDK_INT在代码里自动判断来决定如何呈现Preference Screen。示例代码如下:
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class CustomPreferenceActivity extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
addPreferencesFromResource(R.xml.preference_scenario_1);
} else {
getFragmentManager().beginTransaction().replace(android.R.id.content, new CustomPreferenceFragment()).commit();
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...相关推荐
- php小程序地图处理,微信小程序 地图map详解及简单实例
微信小程序 地图map 微信小程序map 地图属性名类型默认值说明longitudeNumber中心经度 latitudeNumber中心纬度 scaleNumber1缩放级别 markersArra ...
- java对文件的操作详解_Java 对 Properties 文件的操作详解及简单实例
Java 对 Properties 文件的操作详解及简单实例 发布于 2020-8-7| 复制链接 摘记: Java 对 Properties 文件的操作简介在 Java 中,我们常用 java.ut ...
- mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例
<MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...
- python与golang_Golang与python线程详解及简单实例
Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var ...
- mysql 实例复制_MySQL 复制详解及简单实例
MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等.MySQL支持多种不同的复 ...
- java method 注解_JAVA 注解详解及简单实例
JAVA 注解详解及简单实例 何为注解 注解(Annotation)又称为元数据,在JDK1.5后引入,它的作用是: 生成文档 这是注解的原始用途,可以通过注解生成JavaDoc文档 跟踪代码的依赖 ...
- java file 实例_Java File类的详解及简单实例
Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...
- php android 复制粘贴板,Android_Android剪贴板用法详解,本文实例详述了Android剪贴板的 - phpStudy...
Android剪贴板用法详解 本文实例详述了Android剪贴板的用法,分享给大家供大家参考.具体方法分析如下: 这里首先需要注意的一点,就是在使用Android剪贴板的时候大家只记住一点就行了,不管 ...
- java多线程教程_java 基础教程之多线程详解及简单实例
java 多线程详解 在这篇文章里,我们关注多线程.多线程是一个复杂的话题,包含了很多内容,这篇文章主要关注线程的基本属性.如何创建线程.线程的状态切换以及线程通信. 线程是操作系统运行的基本单位,它 ...
最新文章
- LeetCode简单题之整理字符串
- 使用YOLOv5模型进行目标检测!
- 谈谈你对摩尔定理的理解.摩尔定理当前还是继续有效吗?
- 矩阵的三维变换(转)
- WebStorm2018配置nodejs
- 案例实作图解Asp.Net MVC教程
- HTML示例06---段落(原格式标记)
- 区块链+”来了,区块链金融将如何颠覆传统金融
- android 汉字 转 拼音首字母大写,传入汉字字符串, 返回大写拼音首字母
- Aptana Studio3的安装问题
- webim--web端即时通讯的实现
- 关于Spec的一些理解
- qs计算机专业排名2017,2017年qs计算机专业大学排名
- ip_forward参数对Linux内核转发影响分析
- 51单片机——蜂鸣器的使用
- Java中的增强for循环和break continue的使用 以及流程控制训练
- 01语言基础-系统模块和文件操作20220428
- 【快直播】libLebConnectionSDK
- 百度人脸识别模块使用分享
- ROS节点无法读入launch参数问题
热门文章
- 传统运维团队转型应该注意哪些问题?
- angularjs通过ng-change和watch两种方式实现对表单输入改变的监控
- emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题
- SVG(H5可缩放的矢量图形)
- 开发人员学Linux(4):使用JMeter对网站和数据库进行压力测试
- CLLocationCoordinate2D 用法 和一个最隐蔽的错误
- [文档].艾米电子 - 二进制计数器及其变体,Verilog
- 第15章 关于本软件
- MySQL 关于毫秒的处理
- TypeMock是很不错的模拟测试框架