android PreferenceScreen preference偏好顯示類的使用介紹

PreferenceScreen preference是偏好,首選的意思,PreferenceScreen我的翻譯成 「偏好顯示」,明白這個意思就好,就是說根據特色靈活的定義顯示內容風格,一個屏幕能夠包含多個風格,像系統自帶的聲音設置界面。 
 
實現這種顯示效果其實很簡單,只須要藉助PreferenceScreen類便可。在項目資源文件中新建xml文件夾,在裏面新建preferences.xml文件. 
根元素爲PreferenceScreen 表明顯示一整個屏幕,內部嵌套PreferenceCategory標籤,表示偏好類別,在PreferenceCategory標籤內部能夠隨便存放複選框,輸入框,列表等顯示控件.可包含的控件內容在android.preference包下可查閱.xml文件編寫好後,須要加載到activity中,對於偏好顯示的xml加載,能夠使用PreferenceActivity中的addPreferencesFromResource(),因此Activity須要繼承PreferenceActivity.既然顯示的屏幕中包含複選框,輸入框的控件,咱們必然對選擇與否,輸入框內容感興趣,咱們要怎樣獲取屏幕的內容呢? 
複寫activity中的onPreferenceTreeClick 方法,在對屏幕顯示的內容進行操做時,會觸發此方法,在方法內部經過調用 
Java代碼   收藏代碼
  1. SharedPreferences contentPreference = preference.getSharedPreferences();  
  2.      boolean checkbox_toggle = contentPreference.getBoolean("checkbox_preference"false);  
  3.      String animalName = contentPreference.getString("edittext_preference""default");  

便可獲得屏幕上輸入的內容,與使用SharedPreference對象同樣,經過key-value 的形式獲取,其中key是xml控件標籤中key屬性對應的值. 
顯示效果: 
 
對應xml文件: 
Java代碼   收藏代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.         xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5.     <PreferenceCategory  
  6.             android:title="顯示一排偏好">  
  7.         <CheckBoxPreference  
  8.                 android:key="checkbox_preference"  
  9.                 android:title="開關偏好"  
  10.                 android:summary="這是一個開關按鈕" />  
  11.     </PreferenceCategory>  
  12.     <PreferenceCategory  
  13.             android:title="基於對話框的偏好">  
  14.         <EditTextPreference  
  15.                 android:key="edittext_preference"  
  16.                 android:title="文本輸入偏好"  
  17.                 android:summary="使用一個文本框對話框"  
  18.                 android:dialogTitle="輸入你的寵物" />  
  19.         <ListPreference  
  20.                 android:key="list_preference"  
  21.                 android:title="列表偏好"  
  22.                 android:summary="使用一個列表對話框"  
  23.                 android:entries="@array/entries_list_preference"  
  24.                 android:entryValues="@array/entryvalues_list_preference"  
  25.                 android:dialogTitle="選擇一個" />  
  26.     </PreferenceCategory>  
  27.     <PreferenceCategory  
  28.             android:title="啓動偏好">  
  29.         <PreferenceScreen  
  30.                 android:key="screen_preference"  
  31.                 android:title="屏幕"  
  32.                 android:summary="顯示另外一個偏好屏幕">  
  33.               
  34.             <!-- You can place more preferences here that will be shown on the next screen. -->  
  35.                        
  36.             <CheckBoxPreference  
  37.                     android:key="next_screen_checkbox_preference"  
  38.                     android:title="開關偏好"  
  39.                     android:summary="另外一個屏幕上的偏好" />  
  40.         </PreferenceScreen>  
  41.   
  42.         <PreferenceScreen  
  43.                 android:title="意圖偏好"  
  44.                 android:summary="經過意圖啓動一個Activity">  
  45.             <intent android:action="android.intent.action.VIEW"  
  46.                     android:data="http://www.android.com" />  
  47.         </PreferenceScreen>  
  48.     </PreferenceCategory>  
  49.     <PreferenceCategory  
  50.             android:title="偏好屬性">  
  51.         <CheckBoxPreference  
  52.                 android:key="parent_checkbox_preference"  
  53.                 android:title="父開關"  
  54.                 android:summary="這是一個父開關" />  
  55.         <CheckBoxPreference  
  56.                 android:key="child_checkbox_preference"  
  57.                 android:dependency="parent_checkbox_preference"  
  58.                 android:layout="?android:attr/preferenceLayoutChild"  
  59.                 android:title="子開關"  
  60.                 android:summary="這是一個子開關" />  
  61.     </PreferenceCategory>  
  62. </PreferenceScreen>  
相關文章
相關標籤/搜索