在4.0中使用 PreferenceActivity 的addPreferencesFromResource(R.xml.*); 提示过期,经查证,新的替代为 PreferenceFragment,所以,打算将之前的代码换掉。

以前的代码结构:

public class MainActivity extends PreferenceActivity {@SuppressWarnings({ "deprecation" })@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_activity);addPreferencesFromResource(R.xml.main_settings);}
}

官方给出的新的代码结构为:

public class SettingsActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Display the fragment as the main content.getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();}public static class SettingsFragment extends PreferenceFragment {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Load the preferences from an XML resourceaddPreferencesFromResource(R.xml.preferences);}}
}

执行一下,效果盖住了整个屏幕,并不是自己想要的(自己想把preference嵌入其他布局中)。由于学艺不精,不知道 android.R.id.content 是个什么元素。今天突然发现它原来是根布局。有点小高兴,遂做了简单的修改:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setTheme(android.R.style.Theme_Holo_Light_NoActionBar);setContentView(R.layout.activity_main);// getFragmentManager().beginTransaction()// .replace(android.R.id.content, new PrefsFragement()).commit();getFragmentManager().beginTransaction().replace(R.id.llPF, new PrefsFragement()).commit();}public static class PrefsFragement extends PreferenceFragment {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.preferences);}}
}

布局文件activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/tvAlert"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:padding="10dip"android:text="测试 Preferencefragement" /><LinearLayoutandroid:id="@+id/llPF"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><TextViewandroid:id="@+id/tvPF"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:padding="10dip"android:text="我是llPF的子元素" /></LinearLayout></LinearLayout>

最终效果如下:

虽然效果实现,但是并没有达到和之前一样的效果,尝试修改Activity的主题,但是不起作用,请高手指点

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.ttdevs.test.preferencefragement"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="15"android:targetSdkVersion="17" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher" ><activityandroid:name=".MainActivity"android:label="@string/app_name"android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

参考:

http://developer.android.com/guide/topics/ui/settings.html#Fragment

http://blog.csdn.net/eyu8874521/article/details/8250611

PreferenceFragment的简单使用相关推荐

  1. 转载:BP(反向传播算法)公式推导及例题解析

    首发于 深度学习与我的那些事 写文章 BP(反向传播算法)公式推导及例题解析 WILL 深度学习搬砖者 ​ 关注他 297 人 赞同了该文章 写在前面:最近赶上<模式识别>课程考试,就把B ...

  2. android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...

    Android  PreferenceActivity与PreferenceFragment 前言 转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一 ...

  3. 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现

    TabActivity在Android4.0以后已经被完全弃用,取而代之的是Fragment.Fragment是Android3.0新增的概念,Fragment翻译成中文是碎片的意思,不过却和Acti ...

  4. Android数据存储(二)----PreferenceFragment详解

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. Android-自定义preference和PreferenceFragment实例详解

    我们在Android原生系统中所看到的设置界面,使用的是与Preference相关的视图完成的.使用Preference相关的视图能较好地进行了文字的分类和排版.而原生的preference基本很难满 ...

  6. PreferenceActivity和PreferenceFragment实现设置界面

    我们在Android原生系统中所看到的设置界面,使用的是与Preference相关的视图完成的.使用Preference相关的视图能较好地进行了文字的分类和排版.而原生的preference基本很难满 ...

  7. android开发中Settings结构简单分析

    Settings界面结构简单分析 Setting是android系统很重要的模块,这个模块并不是很复杂,这部分也一直在看,很多时候都是在看某个具体的选项,比如WLAN,蓝牙这样具体的源码,但是对于主界 ...

  8. android机顶盒简单案例

    最近,对Andoid中APK做了一些修改,让其支持遥控器的支持,这把人弄得焦头烂额,好不郁闷,这里特别记录下思路,留给有需要的同志. 1 2 3 其实Android本身是做了对遥控器的上下左右按键的焦 ...

  9. 关于开发个简单应用(账号管家)的总结

    前言 转眼已经毕业一年了,工作一年还是学到了很多东西,但是由于公司维护的老项目,目前还是用eclipse开发,看着android studio 2.0 出来了,还是很想去尝试的,另外很多高版本的API ...

最新文章

  1. 除了 AI,这些技术为 IIoT 插上飞向“4.0”的翅膀
  2. php头代码,PHP常用header头定义代码示例汇总
  3. Hikari连接池配多大合适
  4. python颜色形状识别_Python自定义颜色形状Fi
  5. python 钉钉消息推送_python3实现钉钉消息推送的方法示例
  6. System.Delete - 从字符串中删除
  7. 机器学习速成课程 | 练习 | Google Development——编程练习:神经网络简介
  8. Oracle监听器无法启动
  9. LINUX上传下载小工具lrzsz
  10. 2022年电工杯B题应急物资配送问题浅析
  11. java 本地文件上传到服务器,java本地文件上传到远程服务器
  12. 【单片机】2.5 AT89S52的并行I/O端口
  13. 数学在线绘图计算机,Desmos Graphing Calculator插件,在线可视化图形计算器
  14. NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media
  15. 网站如何知道浏览器的用户在使用什么语言?
  16. 接收sqlplus的值_ORACLE中的替换变量或替代变量:-------Oracle中sqlPlus -oracle 输出变量...
  17. vc禁止标题栏拖动窗口
  18. 7.2 IDEA 没有Java EE
  19. des加密算法(des加密算法的密文分组长度)
  20. 沁恒CH32V307使用记录:GPIO与EXTI

热门文章

  1. C语言中的void和void指针-void*,及void指针做函数参数。
  2. ubuntu14.04安装与软件重装说明
  3. 数字化波形声音的wav文件浅析
  4. 移动端框架 - Bootstrap
  5. 基于Java的SMTP协议邮件发送模拟系统
  6. 基于惯性动捕的动画应用解决方案——3DMAX篇
  7. linux中管道符“|”的作用
  8. 二级联动 三级联动 多级联动 无限级联动下拉列表或菜单专题
  9. 探索浏览器(二)向DNS服务器查询Web服务器的IP地址
  10. 通达信 服务器 修改,通达信金融交易终端(开心果交易版)V2020版,修改导航菜单...