[Android实例] preferenceActivity的用法

首先让大家看图  看到这张图是 不是很熟悉 我想大家应该会好奇他是怎么实现  咋一看是不是觉得实现起来有点困难 因为各个按钮之间会绑定牵连在一起 原来android内部提供更容易的实现他的方法 也就是preferenceActivity该类封装了sharedpreferences所以他的所有子类都具有保存key-value对的能力
比较常用的设置项 有三类:
1、checkboxpreferences
2、edittextpreferences
3、listviewpreferences
好了 直接看列子吧 
分2步:
1、在res目录下建一个xml目录  并在该目录下新建一个preferences_setting.xml
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version= "1.0" encoding= "utf-8" ?>
<PreferenceScreen xmlns:android= "http://schemas.android.com/apk/res/android" >
 
    <PreferenceCategory android:title= "我的位置源" >
         <CheckBoxPreference
             android:key= "wireless_network"
             android:summary= "使用无线网络查看应用程序(例如Google地图)中的位置"
             android:title= "使用无线网络" />
         <CheckBoxPreference
             android:key= "gps_satellite_setting"
             android:summary= "定位时,精确到街道级别(取消选择可节约电量)"
             android:title= "启用GPS卫星设置" />
    </PreferenceCategory>
    <PreferenceCategory android:title= "个人信息设置" >
         <CheckBoxPreference
             android:key= "yesno_save_individual_info"
             android:title= "是否保存个人信息" />
 
         <EditTextPreference
             android:key= "individual_name"
             android:summary= "请输入真实姓名"
             android:title= "姓名" />
 
         <PreferenceScreen
             android:key= "other_individual_msg"
             android:summary= "是否工作、手机"
             android:title= "其他个人信息" >
             <CheckBoxPreference
                android:key= "is_an_employee"
                android:title= "是否工作" />
 
             <EditTextPreference
                android:key= "mobile"
                android:summary= "请输入真实的手机号"
                android:title= "手机" />
         </PreferenceScreen>
    </PreferenceCategory>
 
</PreferenceScreen>



2 、java文件:

?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package net.blogjava.mobile;
 
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceChangeListener;
 
public class Main extends PreferenceActivity implements
                OnPreferenceChangeListener
{
        /** Called when the activity is first created. */
 
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
                super .onCreate(savedInstanceState);
                getPreferenceManager().setSharedPreferencesName( "setting" );
                addPreferencesFromResource(R.xml.preference_setting);
                Preference individualNamePreference = findPreference( "individual_name" );
                SharedPreferences sharedPreferences= individualNamePreference.getSharedPreferences();
                individualNamePreference.setSummary(sharedPreferences.getString( "individual_name" , "" ));
                if (sharedPreferences.getBoolean( "yesno_save_individual_info" , false ))
                          individualNamePreference.setEnabled( true );
                else
                          individualNamePreference.setEnabled( false );
                individualNamePreference.setOnPreferenceChangeListener( this );
                 
 
        }
 
        public boolean onPreferenceChange(Preference preference, Object newValue)
        {
                preference.setSummary(String.valueOf(newValue));               
                return true ;
        }
 
        @Override
        public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
                        Preference preference)
        {
 
                if ( "yesno_save_individual_info" .equals(preference.getKey()))
                {
                        findPreference( "individual_name" ).setEnabled(
                                        !findPreference( "individual_name" ).isEnabled());
                }
                return super .onPreferenceTreeClick(preferenceScreen, preference);
        }
}


好了 大公搞成  还不知道需要demo  请留言

QQ截图20130123211311.png (67.01 KB, 下载次数: 0)

QQ截图20130123211311.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值