歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android之用XML文件對程序進行配置

有些程序可以配置,用來讓用戶設置有些自定義的偏好

可以通過SharedPreference來保存程序運行時用戶的狀態以及用戶輸入過的數據,當然我們也可以通過一些自定義的內容來讓用戶對該程序進行設置

用戶設子界面的調用

  1. public class PreferencesFromXml extends PreferenceActivity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.           
  7.         // Load the preferences from an XML resource   
  8.         addPreferencesFromResource(R.xml.preferences);  
  9.     }  
  10.   
  11. }  

在自定義用戶也配置界面的時候需要用到PreferenceScreen來進行設置

如下所示:

  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="@string/inline_preferences">  
  7.             //復選框的設置  
  8.         <CheckBoxPreference  
  9.                 android:key="checkbox_preference"                       
  10.                 android:title="@string/title_toggle_preference"  
  11.                 android:summary="@string/summary_toggle_preference" />  
  12.               
  13.     </PreferenceCategory>  
  14.                   
  15.     <PreferenceCategory  
  16.             android:title="@string/dialog_based_preferences">  
  17.                   //編輯框的設置  
  18.         <EditTextPreference  
  19.                 android:key="edittext_preference"  
  20.                 android:title="@string/title_edittext_preference"  
  21.                 android:summary="@string/summary_edittext_preference"  
  22.                 android:dialogTitle="@string/dialog_title_edittext_preference" />  
  23.          //下拉列表框 設置         
  24.         <ListPreference  
  25.                 android:key="list_preference"  
  26.                 android:title="@string/title_list_preference"  
  27.                 android:summary="@string/summary_list_preference"  
  28.                 android:entries="@array/entries_list_preference"  
  29.                 android:entryValues="@array/entryvalues_list_preference"  
  30.                 android:dialogTitle="@string/dialog_title_list_preference" />  
  31.   
  32.     </PreferenceCategory>  
  33.      //下面的一個版塊都是跳轉到另外一個屏幕  
  34.     <PreferenceCategory  
  35.             android:title="@string/launch_preferences">  
  36.              
  37.         <PreferenceScreen  
  38.                 android:key="screen_preference"  
  39.                 android:title="@string/title_screen_preference"  
  40.                 android:summary="@string/summary_screen_preference">  
  41.               
  42.            //可以到另外一個屏幕顯示更多的設置信息   復選框  
  43.                        
  44.             <CheckBoxPreference  
  45.                     android:key="next_screen_checkbox_preference"  
  46.                     android:title="@string/title_next_screen_toggle_preference"  
  47.                     android:summary="@string/summary_next_screen_toggle_preference" />  
  48.                   
  49.         </PreferenceScreen>  
  50.            //意圖,用來打開一個網頁  
  51.         <PreferenceScreen  
  52.                 android:title="@string/title_intent_preference"  
  53.                 android:summary="@string/summary_intent_preference">  
  54.   
  55.             <intent android:action="android.intent.action.VIEW"  
  56.                     android:data="http://www.android.com" />  
  57.   
  58.         </PreferenceScreen>  
  59.   
  60.     </PreferenceCategory>  
  61.       
  62.     <PreferenceCategory  
  63.             android:title="@string/preference_attributes">  
  64.       
  65.         <CheckBoxPreference  
  66.                 android:key="parent_checkbox_preference"  
  67.                 android:title="@string/title_parent_preference"  
  68.                 android:summary="@string/summary_parent_preference" />  
  69.   
  70.         //下面的復選框依賴於上面的復選框  
  71.         <CheckBoxPreference  
  72.                 android:key="child_checkbox_preference"  
  73.                 android:dependency="parent_checkbox_preference"  
  74.                 android:layout="?android:attr/preferenceLayoutChild"  
  75.                 android:title="@string/title_child_preference"  
  76.                 android:summary="@string/summary_child_preference" />  
  77.               
  78.     </PreferenceCategory>  
  79.       
  80. </PreferenceScreen>  

用PreferenceCategory來進行類別的劃分

key選項是用來在調用的時候,進行區別的一個鍵值,如果layout中的 id一樣

在調用的時候

在setContentView之前加上PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

而通過下面的方法就可以獲取到設置的XML文件中的值了

  1. SharedPreferences sharedPref = PreferenceManager  
  2.         .getDefaultSharedPreferences(this);  
  3.         final int counter = sharedPref.getInt(  
  4.        AdvancedPreferences.KEY_MY_PREFERENCE, 0);  

在對XML進行配置的時候,我們還可以在XML文件中設置該選項的默認值

只需要在給配置項中添加屬性  android:defaultValue=“”就可以了

當一個設置選項需要依賴於另外一個的時候,例如上面的key為 "child_checkbox_preference"依賴於key為“parent_checkbox_preference”

此時需要對子選項設置兩項內容,一個是其依賴的復選項的key,另一個是設置其屬性為子選項

  1. android:dependency="parent_checkbox_preference"  
  2. android:layout="?android:attr/preferenceLayoutChild"  
Copyright © Linux教程網 All Rights Reserved