PreferenceFragment的简单使用

Android中关于PreferenceFragment来设定设置页面的操作方法 SubMenu在没有接触PreferenceFragment之前一直是用的SubMenu方法。 SubMenu方法大家都知道,在实现这个子菜单的前提是要实现一个普通的Menu,就是实现一个onCreateOptionsMenu方法,在这个方法里面添加子类,就是添加SubMenu对象。 但是这个设置界面的效果就是一个很简单,很小的设置,不能够运用在大型的项目中去(有时候一些App的设置会覆盖很多的 阅读详情


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

以前的代码结构:

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


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

public class SettingsActivity extends Activity {
    @Override
    protected 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 {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            // Load the preferences from an XML resource
            addPreferencesFromResource(R.xml.preferences);
        }
    }
}

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

public class MainActivity extends Activity {
	@Override
	protected 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 {
		@Override
		public 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" >

    <TextView
        android:id="@+id/tvAlert"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:padding="10dip"
        android:text="测试 Preferencefragement" />

    <LinearLayout
        android:id="@+id/llPF"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android: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-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher" >
        <activity
            android: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.youkuaiyun.com/eyu8874521/article/details/8250611

自定义Android应用设置界面:PreferenceFragmentCompatTheming实战指南 本文还有配套的精品资源,点击获取 简介:PreferenceFragmentCompatTheming项目指导Android开发者如何为 PreferenceFragmentCompat 自定义主题和布局。这个类用于构建设置界面,通过自定义主题可以改变背景、文字颜色和分割线样式。教程涵盖了主题与样式的定义、布局资源的创建、Java代码中主题的应用、Androi... 阅读详情

相关推荐

Xilinx FPGA 10G Ethernet Subsystem example

The 10G Ethernet subsystem provides 10 Gb/s Ethernet MAC, Physical Coding Sublayer(PCS) and Physical Medium Attachment (PMA) transmit and receive functionality over anAXI4-Stream interface.

青城扬沙的博客 2382

Android设置之Preference源码实现

设置页面超简单实现,同时也是阅读系统setting应用必不可少

tangedegushi的博客 2860

halcon3D 点云拟合球体

halon3D 点云拟合球面

weixin_43213429的博客 1641

Android PreferenceScreen的使用和详解(设置页面)

由于前面说过,Preference状态存储在SharedPreferences中,所以,每个Preference都必须有一个key,这样方便状态存储,如果当前key没有设置,在后期的熟悉操作,可能会存在报错,如果报错key is null,设置一个key即可。PreferenceScreen的用法和layout的类似,都是通过xml文件来管理的,但是PreferenceScreen的布局需要自己去创建。下拉选择,和list的相似,但是list是弹窗。开关,和原来Switch的控件一样使用,.........

1万+

OpenStack 8 节点生产级高可用(HA)集群实施文档

本文详细介绍了生产级高可用OpenStack集群的架构设计与实施方案。通过采用3节点控制集群(HAProxy+Keepalived)、2节点计算资源池和3节点Ceph分布式存储,实现了控制平面、计算资源和存储系统三个层面的高可用。方案重点阐述了VIP漂移、MariaDB Galera集群、RabbitMQ镜像队列等关键组件的配置方法,并提供了完整的部署流程和故障验证方案。该架构确保任意单节点故障不会影响平台整体可用性,满足生产环境对稳定性、扩展性和可维护性的要求,为构建无单点故障的OpenStack生产环境

彭大帅的博客 783

ZYNQ出现问题及解决办法汇总(一直更新)

问题目录使用软件及开发板版本一,vitis在build project时卡住。二,Could not find FPGA device on the board for connection 'Local'三,FPGA configuration failed:DONE PIN is not high四,Could not find ARM device on the board for connection 'Local' 使用软件及开发板版本 开发板:MZ7XA-7020 软件:vitis2020.2(

qq_45057368的博客 1万+

Android 中SettingsActivity(PreferenceFragmentCompat)的简单使用

如果你需要一个简单的APP设置,可以使用sharedPreferences进行存储,我们可以借助AndroidStudio快速创建一个用于设置的Activity,其实它是继承PreferenceFragmentCompat,存储方式用的就是sharedPreferences,只是帮我们节省了很多操作。

s_nshine的博客 1780

PVE(Proxmox VE)添加VMware Esxi并迁移虚拟机

跨平台迁移虚拟机:从VMware虚拟化平台迁移虚拟机到PVE平台。

VEGETA的博客 7720

Android下PreferenceScreen 加载流程

android下PreferenceScreen 加载流程 前面引入主题的废话不多说,也不会说,Preference的加载过程我们就从addPreferencesFromResource()方法开始研究。     addPreferencesFromResource()方法在PreferenceActivity类和PreferenceFragment类(Android3.0以后才有)中

Ocean2006的专栏 3677

史上最全的Logisim存储系统实验教程(基于华中科技大学计算机组成原理实验)内赋源码下载

本博客是最全的最好的解释的华中科技大学计算机组成实验存储系统实验,本博客给出了电路实现,也给出了使用电路的原因有利于新手学习十分详细。并且内赋源码下载。

qq_62325622的博客 2万+

CKA-CN考试之路----16

所以结合本题,如果有多个文件中都存在同一个值,务必统一,或者修改最后一个次序的文件。中以不同的文件名来区分不同目的的配置会更有利于阅读.就像本题中的。但当有多个文件中存在同一个参数的不同值,最后会生效哪个值?中,但随着配置越来越多不怎么容易阅读.当多个文件同时存在一个参数,但值又不同。有时候我们会将所有内存参数全部写在。确认服务状态(2个红框中的内容)

Q先生 303

PreferenceFragment的使用

PreferenceFragment简介 在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,Android专门为这种Activity提供了便捷的基类PreferenceActivity(如果是Fragment,使用PreferenceFragment,现在推荐使用v7包下的PreferenceFragmentCompat),这些类内

宝爷的专栏 956

课堂练习及课后作业2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。

Junds0的博客 1万+

PreferenceFragment的简单用法

请勿转载,辛苦之作,转载注明此文来自http://write.blog.youkuaiyun.com/postedit 此处针对android3.0以后,更加倾向于使用PreferenceFragment而不再使用PreferenceActivity,因为PreferenceFragment更加灵活,此处主要使用两个方法即可达到效果 本文采用ationbar配合PreferenceFragment的方式,

gulangboke的博客 525

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android PreferenceFragment 的使用

有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在Android平台上面,我们可以使用PreferenceActivity基类去显示给用户一个选项设置的界面。在Android3.0或更高的版本上,可以使用PreferenceFragment类去实现这个功能。 下面将展...

FLY_THINK2012的博客 171

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PreferenceFragment 使用 小结

Perference也就是我们常说的偏好设置,首选项设置,可以自动保存一些数据,例如我们在上一次使用的时候的一些内容,则在下一次启动后依然生效,而不需要再进行配置。当用户改变设置时,系统就会更新SharedPreference文件中对应的值。perference使用键值对的方式来处理,在android3.0之前,我们一般去继承Preference这个基类,去给用户呈现一个可以设置的界面,其中的la

快乐&&平凡 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android PreferenceFragment模板

以前我们经常使用PreferenceActivity来显示给用户一个选项设置的界面,而现在Google推荐用PreferenceFragment来代替使用. 先来看看官方文档的描述: The preference hierarchy can be formed in multiple ways: From an XML file specifying the hierarchy Fro

my9074的专栏 939

PreferenceFragment详解

【正文】 一、PreferenceFragment的引入: PreferenceActivity是一个非常有用的基类,当我们开发Android项目时避免不了选项设置,这些设置习惯用Preference来保存。Android专门为这种Activity提供了便捷的基类PreferenceActivity。如果继承自Preference则不需要自己控制Preference的读写,Prefer

liwenyang11111111111的博客 2632

安卓中preferenceFragment的使用

文章目录PreferenceFragment是什么Preferences页面string页面&amp;gt; 我们来写UI界面接着我们来写一个MainActivity页面最后我们来写FragmentPerfences页面 PreferenceFragment是什么 public abstract class PreferenceFragment extends Fragment 以一个列表来展示首选项对象...

入佛门六根不净,入商场狼性不足 1165

PreferenceFragment使用

PreferenceFragment引入 在Android3.0之前,设置界面使用PreferenceActivity,在Android3.0之后,官方推荐使用PreferenceFragment,对应于碎片化技术。 使用 新建Fragment继承PreferenceFragment,加载选项配置xml文件。 public static class NotificationPreferenceFr...

JunquanChen的博客 707

Android PreferenceFragment

PreferenceFragment用来显示首选项的设置,效果图如下: 主布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:...

diantingpi1639的博客 193

PreferenceFragment

PreferenceFragment相信大家对Perference都比较熟悉了,也就是我们常说的偏好设置,首选项设置,可以保存一些数据,例如我们在上一次使用的时候的一些内容,希望在下一次启动后依然生效,而不需要再进行配置那么麻烦。一般这个时候我们便会使用perference键值对的方式来处理,在android3.0之前,我们一般去继承Preference这个基类去给用户呈现一个可以设置的界面,其中的

。 327

preferenceFragment使用

开发Android项目时的选项设置,一般采用preference(偏好)来保存。  在xml文件夹下新建applicationsetting 建议用preferenceFragment类替代preferenceActivity Intent intent = new Intent(LoginActivity.this, Setting.class); public class Setti

我是正直的技术小白 667

android 切换 preferencefragment,Android之PreferenceFragment使用方法

PreferenceFragmentAndroid应用程序通常要提供首选项,以允许用户定制应用程序。例如,可以允许用户保存那些用于访问Web资源的登录凭据, 等等。在Android中,可以使用PreferenceActivity基类为用户显示一个用于编辑首选项的活动。在Android 3.0和更高版本中,可以使用PreferenceFragment类实现相同的功能。// XML// 新建 (res...

weixin_36218209的博客 510
上一篇: dl-ssl.google.com无法打开
下一篇: 自定义的带tab的可左右滑动的viewpager之一 简单实现
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值