android preferenceActivity的用法

來源:互聯網
上載者:User

首先讓大家看圖  看到這張圖是 不是很熟悉 我想大家應該會好奇他是怎麼實現  咋一看是不是覺得實現起來有點困難 因為各個按鈕之間會綁定牽連在一起
原來android內部提供更容易的實現他的方法
也就是preferenceActivity該類封裝了sharedpreferences所以他的所有子類都具有儲存key-value對的能力

比較常用的設定項 有三類:

1、checkboxpreferences

2、edittextpreferences

3、listviewpreferences

好了 直接看列子吧

分2步:

1、在res目錄下建一個xml目錄  並在該目錄下建立一個preferences_setting.xml

<?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檔案:

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);        }}

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.