現在做公司任務的時候,經常會要去讀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