Android  PreferenceActivity与PreferenceFragment

前言

转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一下PreferenceActivity、PreferenceFragment和headers的使用。

PreferenceActivity

我们先通过一个简单的例子来学习一下PreferenceActivity的使用。

preferences_scenario_1.xml

我们先通过xml文件来定义一个简单的preference界面,res/xml/preference_scenario_1.xml:

<?xml version="1.0" encoding="utf-8"?>                            

涉及到的string.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>  下一屏选项  下一屏  我很帅  我刷吗?  我喜欢  人名列表  我喜欢的人名

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,演示图如下:

Android PreferenceActivity与PreferenceFragment详解及简单实例_第1张图片

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();    }  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. 【Android学习笔记】AutoCompleteTextView(数组在代码中)
  2. Android 高通代码预制apk可卸载,恢复出厂设置apk可恢复 Android M
  3. 36个Android开发常用经典代码大全
  4. Android sdcard文件读写操作
  5. 移动网站开发中常用的10段JavaScript代码
  6. android的文件读写
  7. Android Android.mk 文件一点感悟

随机推荐

  1. Android 应用程序中使用 Internet 数据
  2. Android 用SlidingDrawer实现抽屉效果
  3. android小复习
  4. 学习Android 应注意的十个问题
  5. Google Android操作系统四大特点
  6. Android 接受短信和发送短信
  7. android中textview字数过长解决方法
  8. OpenCV4Android(安卓)环境配置(最新详细教
  9. android基础知识12:android自动化测试04—
  10. Ubuntu中useradd和adduser的区别