現在做公司任務的時候,經常會要去讀Settings的源碼,然後發現在xml文件中幾乎全是用的preferenceScreen和preferenceCategory標簽,很少有用布局和控件的,然後我就自己上網看了很多有關的資料,在此總結下。
首先在res目錄下,新建一個命名為xml的文件夾,然後建立一個aaa.xml文件,選擇resource標簽。
先使用PreferenceCategory,代碼如下
1 <PreferenceCategory Android:title="顯示一排偏好" > 2 <CheckBoxPreference 3 android:key="checkbox_pre" 4 android:summary="這是一個開關按鈕" 5 android:title="開關偏好" /> 6 </PreferenceCategory>
效果圖:
PreferenceCategory相當於分組,把同一類的選項放在同一塊區域。
再來看看PreferenceScreen,代碼如下
1 <PreferenceScreen 2 android:key="screen_pre" 3 android:summary="顯示另一個偏好屏幕" 4 android:title="屏幕" > 5 <CheckBoxPreference 6 android:key="next_screen_checkbox_pre" 7 android:summary="另一個屏幕上的偏好" 8 android:title="開關偏好" /> 9 </PreferenceScreen>
如圖,,然後發現沒有checkbox顯示
因為PreferenceScreen是可以點進去的,點擊該選項,進入就可以看到checkbox了
然後看看ListPreference,一般都嵌在PreferenceScreen中使用,看起來比較舒服,代碼如下
<PreferenceScreen android:title="基於對話框的偏好" > <ListPreference android:dialogTitle="選擇一個" android:entries="@array/auto_update_frequency_entry" android:entryValues="@array/auto_update_frequency_value" android:key="list_pre" android:summary="使用一個列表對話框" android:title="列表偏好" > </ListPreference> </PreferenceScreen>
點擊該screen,listPreference會像dialog一樣彈出來,如圖
android:entries和android:entryValues兩個屬性的值來源:
在values目錄下建立一個array.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="auto_update_frequency_entry"> <item >10分鐘</item> <item >30分鐘</item> <item >1小時</item> <item >12小時</item> <item >24小時</item> </string-array> <string-array name="auto_update_frequency_value"> <item >10</item> <item >30</item> <item >60</item> <item >720</item> <item >1440</item> </string-array> </resources>
目前大概就了解了這些,以後有什麼再補充
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11