Android设置中的Preferencescreen用法介绍与分析

使用PreferenceScreen之前简单的介绍一下 ,

PreferenceScreen它不仅可以作为设置界面显示,而且还能够启动activity 以及内嵌View
和用layout方式一样,代码很简单。和以往界面最大的区别是,我们对checkbox进行选择或者对ringtone进行选择后,这个选择结果是被保留的,当我们退出actitvity后再次进入,上次的选项依然保留,我们重新向模拟器load应用,发现之前的选项仍然存在。我们可以利用preference,而无须人工对数据进行保存和读取,很是方便。
preference都应用在什么场景呢?
一般用在对用户的设置信息进行保存
       这得从android对preference的实现说起,实际上,preference所存储的数据最后都会以xml文件格式的形式进行保存,而且其只能 保存一些基本格式的数据。例如string/boolean……。该xml文件存放的位置在data/data/你应用的包名/shared_prefs 文件夹下。

       种种的限制与实现机制表明了,preference非常适合于参数设置功能。实际上,它也确实是干这个的,我们通过使用preference可以迅速的将某些值保存进xml文件中,然后我们可以读取这些设置信息进行相应的操作。
好了,,开始上代码
package com.example.preferencescreentest;
public class MainActivity extends PreferenceActivity{
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.mypreferencescreen);
    }
}
使用PreferenceScreen 首先继承PreferenceActivity 然后添加preferencescreen的配置文件
addPreferencesFromResource(R.xml.mypreferencescreen); 和Activity的setContentView(R.layout.activity_main);一样用法
加载了运行就是一下的界面
     
 
 


界面看完了,,好了配置的代码送上

配置之前我们得在res目录新建一个XML文件
如下图   



<?xml version="1.0" encoding="utf-8"?>
<!-- preference的组织方式有
PreferenceScreen和PreferenceCategory,PreferenceCategory是带层次组织关系,
在后面的例子体验,而PreferenceScreen就是最平白和基础的方式 
特性                                                                           说明 
android:key                       选项的名称或键(比如selected_flight_sort_option) 

android:title                     选项的标题 

android:summary                   选项的简短摘要 

android:entries                   可将选项设置成列表项的文本 

android:entryValues               定义每个列表项的值。注意:每个列表项有一些文本和 一 个 值。 文本由
  
entries                           定义,值由entryValues定义。 

android:dialogTitle               对话框的标题,在视图显示为模态对话框时使用 

android:defaultValue              项列表中选项的默认值 



-->
<PreferenceScreen 
    xmlns:android=" http://schemas.android.com/apk/res/android"
    android:title="第一层PreferenceScreen"
    android:summary="这是第一层PreferenceScreen "
    >
    <!-- 有四个基本组建,很容易理解,RingtonePreference是选择铃音,这里给出两个选择,系统默认的铃音和无声 -->
    <CheckBoxPreference android:key="checkbox"
        android:title="CheckBox Preference"
        android:summary="复选款"/>
    <RingtonePreference android:key="ringtone"
        android:title="Ringtone Preference"
        android:showDefault="true"
        android:showSilent="true"
        android:summary="选择铃声"/>
       <PreferenceCategory android:title="PreferenceCategory可以将几个组件组在一起">
            <CheckBoxPreference android:key="checkbox" android:title="复选框"  />
            <RingtonePreference android:key="ringtone" android:title="选择铃声"  />
       </PreferenceCategory>
       
       <PreferenceCategory android:title="也可以内嵌的PreferenceScreen">
           
           <PreferenceScreen android:title="内嵌的PreferenceScreen点击后进入一个新的页面">
               <CheckBoxPreference android:key="checkbox2"
                   android:title="Another Checkbox"
                   android:summary="最里层的PreferenceScreen的CheckBoxPreference"/>
           </PreferenceScreen>
       </PreferenceCategory>
    
       
       
       
       <PreferenceCategory android:title="实验另外的两个组建EditText和List">
           <EditTextPreference android:key="text"
               android:title="EditTextPreference"
               android:summary="点击进行编写"
               android:dialogTitle="内容"/>
           <ListPreference android:key="list"
               android:title="ListPreference"
               android:summary="点击进行选择"
               android:entries="@array/cities"
               android:entryValues="@array/airport_codes"
               android:dialogTitle="提醒的天数"/>
       </PreferenceCategory>
       
          <PreferenceCategory android:title="还可以内嵌PreferenceScreen来跳转intent">
            <PreferenceScreen android:title="跳转Intent" >
                <intent
                  android:targetPackage="com.example.preferencescreentest"
                  android:targetClass="com.example.preferencescreentest.OtherA"
                ></intent>
                
            </PreferenceScreen>  
        
         </PreferenceCategory>
       
       <PreferenceCategory android:title="打开网页">
        <PreferenceScreen android:title="也可以链接网页" android:summary="反馈建议">
            <intent android:action="android.intent.action.VIEW" android:data=" http://www.baidu.com/" />
        </PreferenceScreen>
        </PreferenceCategory>
        
        <PreferenceCategory android:title="定义一个layout">
       <Preference android:title="定义一个View"  
        android:layout="@layout/text_view"
        android:icon="@drawable/ic"
        >
           
       </Preference>
       </PreferenceCategory>
       
</PreferenceScreen>

今天上传不了源码附件。所以下次补上。,见谅


补上源码 一个仿 QQ 设置界面    QQUIDemo.rar (746.05 KB, 下载次数: 257) 


QQ截图20121121161707.png (12.64 KB, 下载次数: 32)

QQ截图20121121161707.png
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值