[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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章