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

來源:互聯網
上載者:User

android PreferenceScreen preference偏好顯示類的使用介紹,preferencescreen
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>  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.