PreferenceActivity

 

在開發應用程序的過程中我們有很大的機會需要用到參數設置功能,那麼在Android應用中,我們如何實現參數設置界面及參數存儲呢,下面我們來介紹一下Android中的一個特殊Activity–PreferencesActivity。PreferencesActivity是Android中專門用來實現程序設置界面及參數存儲的一個Activity,我們用一個實例來簡介如何使用PreferencesActivity。

下圖是一個參數設置界面:

 

 

以此爲例我們來介紹一下如何實現這個界面。首先建立一個xml來描述這個界面,文件爲res/xml/preferences.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.  xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <PreferenceCategory android:title="PreferenceCategory 1">  
  5.         <CheckBoxPreference  
  6.             android:key="CheckBox1"  
  7.             android:title="CheckBox"  
  8.             android:summaryOn="某功能: 開啓"  
  9.             android:summaryOff="某功能: 關閉"  
  10.             android:defaultValue="true"  
  11.         />  
  12.     </PreferenceCategory>  
  13.     <PreferenceCategory android:title="PreferenceCategory 2">  
  14.         <PreferenceScreen android:title="二級PreferenceScreen">  
  15.             <CheckBoxPreference  
  16.                 android:key="CheckBox2"  
  17.                 android:title="CheckBox"  
  18.                 android:summaryOn="某功能: 開啓"  
  19.                 android:summaryOff="某功能: 關閉"  
  20.                 android:defaultValue="true"  
  21.             />  
  22.         </PreferenceScreen>  
  23.     </PreferenceCategory>  
  24.     <PreferenceCategory android:title="PreferenceCategory 3">  
  25.     <ListPreference  
  26.         android:key="ListPreference"  
  27.         android:title="ListPreference"  
  28.         android:summary="ListPreference測試"  
  29.         android:dialogTitle="ListPreference"  
  30.         android:entries="@array/entries_list_preference"  
  31.         android:entryValues="@array/entriesvalue_list_preference"  
  32.     />  
  33.     <EditTextPreference  
  34.         android:key="EditTextPreference"  
  35.         android:title="EditTextPreference"  
  36.         android:summary="點擊輸入"  
  37.         android:dialogTitle="輸入設置"  
  38.     />  
  39.     <RingtonePreference  
  40.         android:key="RingtonePreference"  
  41.         android:title="RingtonePreference"  
  42.         android:summary="選擇鈴聲"  
  43.     />  
  44.     </PreferenceCategory>  
  45. </PreferenceScreen>  

 

這個例子中包括了PreferenceActivity中常見的幾種組件,以下爲具體介紹及用法:

PreferenceScreen:設置頁面,可嵌套形成二級設置頁面,用Title參數設置標題。

PreferenceCategory:某一類相關的設置,可用Title參數設置標題。

CheckBoxPreference:是一個CheckBox設置,只有兩種值,true或false,可用Title參數設置標題,用summaryOn和summaryOff參數來設置控件選中和未選中時的提示。

 

 

ListPreference:下拉框選擇控件,用Title參數設置標題,用Summary參數設置說明,點擊後出現下拉框,用dialogTitle設置下拉框的標題,下拉框內顯示的內容和具體的值需要在res/values/array.xml中設置兩個array來表示。圖中的array.xml設置如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3. <string-array name="entries_list_preference">  
  4.     <item>test1</item>  
  5.     <item>test2</item>  
  6.     <item>test3</item>  
  7. </string-array>  
  8. <string-array name="entriesvalue_list_preference">  
  9.     <item>1</item>  
  10.     <item>2</item>  
  11.     <item>3</item>  
  12. </string-array>  
  13. </resources>  

 

EditTextPreference:輸入框控件,點擊後可輸入字符串設置。用Title參數設置標題,Summary參數設置說明,dialogTitle參數設置輸入框的標題。

RingtonePreference:鈴聲選擇框,點擊後可選擇系統鈴聲。Title參數設置標題,Summary參數設置說明,dialogTitle參數設置鈴聲選擇框的標題。

 

 

轉載  PreferenceActivity 收藏

在開發應用程序的過程中我們有很大的機會需要用到參數設置功能,那麼在Android應用中,我們如何實現參數設置界面及參數存儲呢,下面我們來介紹一下Android中的一個特殊Activity–PreferencesActivity。PreferencesActivity是Android中專門用來實現程序設置界面及參數存儲的一個Activity,我們用一個實例來簡介如何使用PreferencesActivity。

下圖是一個參數設置界面:
android-preference-screen-01
以此爲例我們來介紹一下如何實現這個界面。首先建立一個xml來描述這個界面,文件爲res/xml/preferences.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.  xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <PreferenceCategory android:title="PreferenceCategory 1">  
  5.         <CheckBoxPreference  
  6.             android:key="CheckBox1"  
  7.             android:title="CheckBox"  
  8.             android:summaryOn="某功能: 開啓"  
  9.             android:summaryOff="某功能: 關閉"  
  10.             android:defaultValue="true"  
  11.         />  
  12.     </PreferenceCategory>  
  13.     <PreferenceCategory android:title="PreferenceCategory 2">  
  14.         <PreferenceScreen android:title="二級PreferenceScreen">  
  15.             <CheckBoxPreference  
  16.                 android:key="CheckBox2"  
  17.                 android:title="CheckBox"  
  18.                 android:summaryOn="某功能: 開啓"  
  19.                 android:summaryOff="某功能: 關閉"  
  20.                 android:defaultValue="true"  
  21.             />  
  22.         </PreferenceScreen>  
  23.     </PreferenceCategory>  
  24.     <PreferenceCategory android:title="PreferenceCategory 3">  
  25.     <ListPreference  
  26.         android:key="ListPreference"  
  27.         android:title="ListPreference"  
  28.         android:summary="ListPreference測試"  
  29.         android:dialogTitle="ListPreference"  
  30.         android:entries="@array/entries_list_preference"  
  31.         android:entryValues="@array/entriesvalue_list_preference"  
  32.     />  
  33.     <EditTextPreference  
  34.         android:key="EditTextPreference"  
  35.         android:title="EditTextPreference"  
  36.         android:summary="點擊輸入"  
  37.         android:dialogTitle="輸入設置"  
  38.     />  
  39.     <RingtonePreference  
  40.         android:key="RingtonePreference"  
  41.         android:title="RingtonePreference"  
  42.         android:summary="選擇鈴聲"  
  43.     />  
  44.     </PreferenceCategory>  
  45. </PreferenceScreen>  

 

這個例子中包括了PreferenceActivity中常見的幾種組件,以下爲具體介紹及用法:

PreferenceScreen:設置頁面,可嵌套形成二級設置頁面,用Title參數設置標題。

PreferenceCategory:某一類相關的設置,可用Title參數設置標題。

CheckBoxPreference:是一個CheckBox設置,只有兩種值,true或false,可用Title參數設置標題,用summaryOn和summaryOff參數來設置控件選中和未選中時的提示。

android-preference-screen-02

ListPreference:下拉框選擇控件,用Title參數設置標題,用Summary參數設置說明,點擊後出現下拉框,用dialogTitle設置下拉框的標題,下拉框內顯示的內容和具體的值需要在res/values/array.xml中設置兩個array來表示。圖中的array.xml設置如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3. <string-array name="entries_list_preference">  
  4.     <item>test1</item>  
  5.     <item>test2</item>  
  6.     <item>test3</item>  
  7. </string-array>  
  8. <string-array name="entriesvalue_list_preference">  
  9.     <item>1</item>  
  10.     <item>2</item>  
  11.     <item>3</item>  
  12. </string-array>  
  13. </resources>  

 

android-preference-screen-03

EditTextPreference:輸入框控件,點擊後可輸入字符串設置。用Title參數設置標題,Summary參數設置說明,dialogTitle參數設置輸入框的標題。

android-preference-screen-04

RingtonePreference:鈴聲選擇框,點擊後可選擇系統鈴聲。Title參數設置標題,Summary參數設置說明,dialogTitle參數設置鈴聲選擇框的標題。

android-preference-screen-05

以上是PreferenceActivity的xml描述,那麼在程序中我們只需要新建一個繼承自PreferenceActivity的Activity,然後在主程序中調用addPreferencesFromResource(XML的ID) 就可以了。這個PreferenceActivity中的設置存儲是完全自動的,你不需要再用代碼去實現設置的存儲,PreferenceActivity創建後會自動創建一個配置文件/data/data/you_package_name/shared_prefs/you_package_name_you_xml_name.xml。上例中自動生成的配置文件如下:

  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2. <map>  
  3. <string name="EditTextPreference">12332312</string>  
  4. <string name="ListPreference">2</string>  
  5. <string name="RingtonePreference">content://settings/system/ringtone</string>  
  6. <boolean name="CheckBox1" value="true" />  
  7. <boolean name="CheckBox2" value="true" />  
  8. </map>  

 

 

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