国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

詳解Android開發系統中PreferenceActivity的應用步驟

2020-02-21 17:37:37
字體:
來源:轉載
供稿:網友

很多書籍都沒有詳細的介紹Preference Activity,碰巧武林技術頻道小編在項目中使用了它,所以小編為大家詳解Android開發系統中PreferenceActivity的應用步驟的介紹,也便于以后的查找,下面一起來了解一下吧!

看到很多書中都沒有對PreferenceActivity做介紹,而我正好又在項目中用到,所以就把自己的使用的在這總結一下,也方便日后查找。
PerferenceActivity是什么,看下面的截圖:
??????????? ?
Android系統截圖(左)MusicPlayer Setting截圖(右)
好了,我們看到Android系統本身就大量用到了PreferenceActivity來對系統進行信息配置和管理,那么它是怎么保存數據的呢,如何創 建PrefenceActivity的呢,更關鍵是怎樣觸發相應事件的呢。
先看第一個問題,PreferenceActivity是如何保存的數據。對Android系統了解的都知道,Android系統有四種基本的數據保存方 法,一是SharedPreference,二是文件,三是SQLite,四是ContentProvider。看出來了吧,Preference,對就 是使用SharedPreferneces以鍵值對的形式進行保存的,當然,我們也可以通過SharedPreferences來獲取 PreferenceActivity設置的值。
第二個問題:如何創建一個PreferenceActivity。 其實Eclipse提供了相應的創建工具,和創建Layout是基本相同的。步驟如下:
創建Android項目,并添加一個Android xml文件。注意,這次選擇的不是Layout,而是Preference,而且注意Folder路徑是 res/xml.
?
添加完成之后,在res/xml/下打開添加的preference.xml文件。可以看到Android也為我們提供兩種編輯模式,可視化的結構 設計及xml源碼設計。推薦使用structure進行創建。如圖所示:
?
下面我們看看PrefeneceActivity都提供了哪幾種元素可供使用。點擊Add按鈕,在打開的新窗口中可以看到以下幾項:?
??? image?
CheckBoxPreference:CheckBox選擇項,對應的值的ture或flase。如圖:
image?
EditTextPreference:輸入編輯框,值為String類型,會彈出對話框供輸入。
?
ListPreference: 列表選擇,彈出對話框供選
?
Preference:只進行文本顯示,需要與其他進行組合使用。
image?
PreferenceCategory:用于分組。效果如下:
image?
PreferenceScreen:PreferenceActivity的根元素,必須為它。
RingtonePreference:系統玲聲選擇。
?
OK,Preferenc的基本元素介紹完畢,下一節將使用它們創建一個完整的Preference并進行顯示。
-------------------------------------------------------------------------------
分析MusicPlayer Setting,第一部分為“我的位置”,包括“使用無線網線”和“使用GPS”兩個部分,而且都是CheckBox,根據上節學習,應該包括一個 PreferenceCategory和兩個CheckBoxPreference。
Xml代碼:



android:summary="使用無線網絡在應用程序(例如Google地圖)中查看位置"
android:title="使用無線網絡" android:defaultValue="true">

android:summary="定位到街道級別(需要消耗更多的電量以及天氣允許)"
android:title="使用GPS">

?


以上代碼當然也可以用Android提供的IDE工具直接生成。視頻結構如下:
image?
PreferenceCategory 屬性分析:
title:顯示的標題
key:唯一標識(至少在同一程序中是唯一),SharedPreferences也將通過此Key值進行數據保存,也可以通過key值獲取保存的信息 (以下相同)。
CheckBoxPreference屬性分析:
Key:唯一標識.
title:顯示標題(大字體顯示)
summary:副標題(小字體顯示)
defaultValue:默認值(當然,此處只能是true或false了)
Preference.xml的第二部分為“無線和網絡設置”,此部分包括的內容比較多,也稍微復雜,一步一步來分析。
xml代碼:

?

?



android:summary="禁用所有無線連接" android:title="飛行模式">

android:summary="禁用通過USB共享Internet連接"
android:title="Internet共享">

android:summary="打開Wi-Fi" android:title="Wi-Fi">

android:dependency="apply_wifi" android:key="wifi_setting">

android:summary="啟用藍牙" android:title="藍牙">

android:title="藍牙設置" android:dependency="apply_bluetooth"
android:key="bluetooth_setting">

android:title="輸入電話號碼">

android:entryValues="@array/department_value"
android:dialogTitle="選擇部門"
android:key="depart_value">

android:showDefault="true" android:key="ring_key"
android:showSilent="true">
?


對應的Structure圖:
?
第二部分中前三個都為CheckBoxPreference,不心多說,從

開始。
Preference屬性分析:
Key:唯一標識.
title:顯示標題(大字體顯示)
summary:副標題(小字體顯示)
dependency:附屬(嘛意思),即標識此元素附屬于某一個元素(通常為CheckBoxPreference),dependency值為所附屬 元素的key。上面代碼中的Preference元素附屬于key等于“apply_bluetooth”的CheckPreference元素,當 CheckPreference值為true時,Preference則為可用,否則為不可用。
EditTextPreperence屬性分析:
Key:唯一標識.
title:顯示標題(大字體顯示)
ListPreference屬性分析:
Key:唯一標識.
title:顯示標題(大字體顯示)
dialogTitle:彈出對話框的標題
entries:列表中顯示的值。為一個數組,通讀通過資源文件進 行設置。
entryValues:列表中實際保存的值,也 entries對應。為一個數組,通讀通過資源文件進行設置。以下代碼顯示的是arrays.xml文件中內容:

?

?




綜合部
行政部
外貿部



001
002
003

?


RingtonePreference :玲聲(暫時沒有用到過),暫時略過。
OK,Preference.xml內容已經分析完畢,屬性都大致相同,相信親自動力一試也就那么回事。那么如何把Preference.xml中 內容展現出來呢?
Layout是通過繼續自Activity的類來進行顯示的,前面提到過,PreferenceActivity是專門用于顯示 preference的,所以只要創建一個繼承自PreferenceActivity類即可。代碼如下:

?

?


public class Setting extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 所的的值將會自動保存到SharePreferences
addPreferencesFromResource(R.xml.preference);
}
}


接下來就是運行程序,顯示勞動成果。至此,工作已經完成大半,所有的值都會保存到SharedPreferences中,我們也可以讀取到保存的結 果。
還有一個重要的問題,就是如何響應PreferenceActivity的操作。其實只要重寫PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通過參數preference來判斷是對那一個元素進行的,并根據需要進行操作。

?

?


@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
return false;
}


Ok,上文是武林技術頻道小編為大家搜集到的相關介紹,希望對你了解詳解Android開發系統中PreferenceActivity的應用步驟有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常熟市| 洛扎县| 阿拉善盟| 景洪市| 荣昌县| 南华县| 福建省| 九龙坡区| 长垣县| 淄博市| 新龙县| 达日县| 繁峙县| 定襄县| 木里| 都兰县| 尉氏县| 内乡县| 和龙市| 西丰县| 石景山区| 麻阳| 汝南县| 正镶白旗| 山东省| 夹江县| 嘉义县| 瑞丽市| 澎湖县| 石棉县| 仁怀市| 三门峡市| 寿宁县| 金湖县| 杭锦后旗| 镇安县| 武汉市| 阜新市| 云和县| 松溪县| 胶南市|