PreferenceActivity-android 参数设置

一.PreferenceActivity简介

   PreferenceActivity继承自ListActivity,用来与用户交互,保存一些用户设置信息。PreferenceActivity的功能有些类似SharedPreferences,将用户设置的信息保存到 /data/data/you_package_name/shared_prefs/you_package_name_you_xml_name.xml ,区别在于SharedPreferences会自动保存用户的设置信息,不像SharedPreferences那样开发人员去保存 。保存的设置信息以key-value形式保存,可以通过如下方法获取value;

         SharedPreferences  prefs = PreferenceManager .getDefaultSharedPreferen ces(this);
                                             value = prefs.getString(” key ”, “unset”);
         应用的类有: 

     PreferenceFragment .PreferenceActivity

包类:
package  android.preference

   本例的demo展示如下:
                     
  PreferenceActivity-android <wbr>参数设置

二.创建PreferenceActivity布局

     PreferenceActivity的布局不是在res/layout/目录下创建的,而是在res/xml/名字 .xml。
     如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen    // 根标签

  xmlns:android="http://schemas.android.com/apk/res/android">  // 命名空间
    <PreferenceCategory >    //  类型1  需要设置的同一类属性都可以放到该 PreferenceCategory标签下
        <CheckBoxPreference          // 类型1下只放置一个checkbox
            android:key="checkBox1索引键"      // 该属性即是上面所说的 key
            android:title="CheckBox的标题"
            android:summaryOn="某功能: 开启"
            android:summaryOff="某功能: 关闭"
            android:defaultValue="true"
            android:summary="如何保用"
            android:enabled="true"
            android:persistent="true" />
            
             <!-- android:enabled="true" 默认选择 -->
    </PreferenceCategory>
    
   <PreferenceCategory >    //  类型2
       <EditTextPreference                    
        android:title="EditText标题"
        android:key="EditText的索引
        android:dialogTitle="EditText对话框的标题"
        android:dialogMessage="要显示信息"
        android:dialogIcon="@drawable/icon"
        android:positiveButtonText="确定"
        android:negativeButtonText="cancel"
        android:summary="点击弹出编辑框"    //  如图2
        android:dependency="checkBox1索引键"
      />
      <!-- android:dependency="checkBox1索引键" 类型2有 enable受类型1的控制 -->
   </PreferenceCategory>
   
   <PreferenceCategory android:title="类型 3">   //   类型3
   <PreferenceScreen android:title="二级页面"
   android:summary="点击显示另一个设置页面"    //    如图3
   >
   <CheckBoxPreference
            android:key="checkBox2的索引键"
            android:title="CheckBox2"
            android:summaryOn="某功能: 开启"
            android:summaryOff="某功能: 关闭"
            android:defaultValue="true"
            android:summary="同上"
            android:enabled="false"
            android:persistent="true" />
   </PreferenceScreen>
   </PreferenceCategory>

   <PreferenceCategory android:title="类型4">     //   类型4
   <ListPreference
   android:key="list的键"
   android:title="listPreference"              如图4
   android:dialogTitle="对话框标示"
   android:entries="@array/list_name"      // 在列表中显 数组entryValues 键数组
   android:entryValues="@array/value"  // entries与entryValues一一对应关系
   ></ListPreference>
   <!-- android:entries对应于key,android:entryValues对应于value,两个数组的数目一致 -->
   </PreferenceCategory>
    
</PreferenceScreen>

三. 定义PreferenceActivity

       以上是PreferenceActivity的xml描述,那么在程序中我们只需要新建一个继承自PreferenceActivity的Activity,然后在主程序中调用就可以了;并在Activity的onCreate()方法中使用xml描述即可。

  public void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               addPreferencesFromResour ce(R.xml.mypreferenceactivity);

四.定制自己PreferenceActivity

  1>  theme
  在value文件夹下新建一个名字.xml文件,名字.xml内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="sys_set_preacitivity">
                <item name="android:windowBackground">@drawable/background</item>   // 背景
                <item name="android:focusable">false</item>
                <item name="android:textColor">#ff000000</item>
                <item name="android:cacheColorHint">#ffffffff</item>
                <item name="android:windowNoTitle">false</item>  <!-- 用来设定是否显示标题  -->
        </style>
</resources>
2、在AndroidManifest.xml调用
<activity android:name="SystemSetAcitivity" android:theme="@style/sys_set_preacitivity"></activity>

2>自定义
   在res/xml/名字.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen   xmlns:android="http://schemas.android.com/apk/res/android">
       <PreferenceCategory android:title="自定义布局"   android:key="preference_key">     
       <Preference
               android:layout="@layout/preferencestyle"  //  在res/layout/定制自己的布局
              android:title="加载了一张自定义布局A"
              android:key=" pref_key_0 "
              ><!-- 加载自定义的布局 -->
       </Preference>
     
       <Preference
               android:layout="@layout/preferencestyle"
              android:title="加载了一张自定义布局B"
              android:key=" pref_key_1 "
              >
       </Preference>
       </PreferenceCategory>
</PreferenceScreen>

   在继承自PreferenceActivity类的onCreate()方法中加入
  Preference preference1 = findPreference(" pref_key_1 ");
  Preference preference2 = findPreference(" pref_key_2 ");
preference1.setOnPreferenceClickList ener();   // 注册监听


五。展示如下


PreferenceActivity-android <wbr>参数设置

图片2

PreferenceActivity-android <wbr>参数设置

图片3

PreferenceActivity-android <wbr>参数设置

图片4


附:数据定义
在res/value/array.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string-array name="list_name">
<item>data1</item>
<item>data2</item>
<item>data3</item>

</string-array>
<string-array name="value">
<item>1</item>
<item>3</item>
<item>5</item>
</string-array>

</resources>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值