PreferenceScreen的應用


PreferenceScreen preference是偏好。首選的意思,PreferenceScreen個人翻譯成 “偏好顯示”,明確這個意思就好。就是說依據特點靈活的定義顯示內容風格,一個屏幕能夠包括多個風格,像系統自帶的聲音設置界面。

 
 
實現這樣的顯示效果事實上非常easy。僅僅須要借助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="這是一個開關button" />  
  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>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM