[Android实例] preferenceActivity的用法

来源:互联网 发布:windows制作mac安装u盘 编辑:程序博客网 时间:2024/05/20 05:56
首先让大家看图  看到这张图是 不是很熟悉 我想大家应该会好奇他是怎么实现  咋一看是不是觉得实现起来有点困难 因为各个按钮之间会绑定牵连在一起 原来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
packagenet.blogjava.mobile;
 
importandroid.content.SharedPreferences;
importandroid.os.Bundle;
importandroid.preference.Preference;
importandroid.preference.PreferenceActivity;
importandroid.preference.PreferenceScreen;
importandroid.preference.Preference.OnPreferenceChangeListener;
 
publicclass Main extendsPreferenceActivity implements
                OnPreferenceChangeListener
{
        /** Called when the activity is first created. */
 
        @Override
        publicvoid 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);
                 
 
        }
 
        publicboolean onPreferenceChange(Preference preference, Object newValue)
        {
                preference.setSummary(String.valueOf(newValue));               
                returntrue;
        }
 
        @Override
        publicboolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
                        Preference preference)
        {
 
                if("yesno_save_individual_info".equals(preference.getKey()))
                {
                        findPreference("individual_name").setEnabled(
                                        !findPreference("individual_name").isEnabled());
                }
                returnsuper.onPreferenceTreeClick(preferenceScreen, preference);
        }
}


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

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

QQ截图20130123211311.png

原创粉丝点击