提要
如果你從搜索引擎找到這篇《Android中PreferenceFregment使用完全攻略》文章,那麼恭喜你,你來對地方了。我可以很負責任的告訴你,在這篇文章之前,沒有一篇完整敘述PreferenceFregment使用的完整文章。
在Android的應用中通常都有setting功能,能夠設置一些全局的選項,例如字體顏色,個人喜好等等。
這些東西都是存在一個xml中的,在android中對應的對象就是SharedPreferences。
本文全部源碼下載:
FTP地址:ftp://ftp1.linuxidc.com
用戶名:www.6688.cc
密碼:www.linuxidc.com
在 2013年LinuxIDC.com\9月\Android中PreferenceFregment使用完全攻略
下載方法見 http://www.linuxidc.net/thread-1187-1-1.html
---------------------------------分割線---------------------------------
下面就是一個完整使用PreferenceFregment的例子,先看結果:
很明顯PreferenceFragment 是Fregment, PreferenceActivity是Activity。
當你的應用針對的系統在3.0以上的時候,你就應該用PreferenceFragment,現在主流系統4.0的情況下,當然選擇使用PreferenceFragment。原因是PreferenceFragment是一個更加平滑的結構,你可以將它依附在任何的activity上面,谷歌強力推薦使用PreferenceFragment!
常用Preference
CheckPreference —— CheckBox 單選框
EditTextPreference —— EditText 輸入文本框
ListPreference —— ListView 列表框
RingtonePreference —— 選擇鈴聲
XML定義常用的屬性有:
android:key : 每個Preference控件獨一無二的”ID”,唯一表示此Preference。
android:defaultValue : 默認值。 例如,CheckPreference的默認值可為”true”,默認為選中狀態;
EditTextPreference的默認值可為”110” 。
android:enabled : 表示該Preference是否可用狀態。
android:title : 每個Preference在PreferenceScreen布局上顯示的標題——大標題
android:summary : 每個Preference在PreferenceScreen布局上顯示的標題——小標題(可以沒有)
ListPreference中:
android:entries:類型為array,控件欲顯示的文本
android:entryValues:類型為array,與文本相對應的key-value鍵值對,value保存至sharedPreference文件
1.定義preference
在項目的res/xml中新建一個preferences.xml.用於定義菜單界面的設置選項:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="PreferenceCategory A">
<CheckBoxPreference
android:key="checkbox_preference"
android:title="title_checkbox_preference"
android:summary="summary_checkbox_preference" />
</PreferenceCategory>
<PreferenceCategory
android:title="PreferenceCategory B">
<EditTextPreference
android:key="edittext_preference"
android:title="title_edittext_preference"
android:summary="null"
android:dialogTitle="dialog_title_edittext_preference"
android:defaultValue="null" />
<ListPreference
android:dialogTitle="Choose font"
android:entries="@array/pref_font_types"
android:entryValues="@array/pref_font_types_values"
android:key="list_preferenc"
android:summary="sans"
android:title="Font"
android:defaultValue="sans"/>
</PreferenceCategory>
</PreferenceScreen>
android:entries 和 android:entryValues 定義在res/values/strings.xml中
<string name="app_name">AndroidPreferenceFragment</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string-array name="pref_font_types">
<item>sans</item>
<item>serif</item>
<item>monospace</item>
<item>Yahei</item>
</string-array>
<string-array name="pref_font_types_values">
<item>sans</item>
<item>serif</item>
<item>monospace</item>
<item>Yahei</item>
</string-array>