成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android中preference的使用

移動開發 Android
Android提供了Preference供應用可以進行功能設置以及屬性配置等操作,檢查android.preference可以看Preference下有若干子類,例如常用的EditTextPreference、CheckBoxPreference、ListPreference等,本篇簡單的介紹一下。

對于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按鈕,在打開的新窗口中可以看到以下幾項:


CheckBoxPreference:CheckBox選擇項,對應的值的ture或flase。如圖:


EditTextPreference:輸入編輯框,值為String類型,會彈出對話框供輸入


ListPreference: 列表選擇,彈出對話框供選擇。


Preference:只進行文本顯示,需要與其他進行組合使用。


PreferenceCategory:用于分組。效果如下
PreferenceScreen:PreferenceActivity的根元素,必須為它。


 

RingtonePreference:系統玲聲選擇。
 

OK,Preferenc的基本元素介紹完畢,下一節將使用它們創建一個完整的Preference并進行顯示。

#p#

分析MusicPlayer Setting,第一部分為“我的位置”,包括“使用無線網線”和“使用GPS”兩個部分,而且都是CheckBox,根據上節學習,應該包括一個PreferenceCategory和兩個CheckBoxPreference。

Xml代碼:

  1. <PreferenceCategory android:title="我的位置" android:key="set_local"> 
  2. <CheckBoxPreference android:key="apply_wifi" 
  3. androidandroid:summary="使用無線網絡在應用程序(例如Google地圖)中查看位置"android:title="使用無線網絡" android:defaultValue="true"> 
  4. </CheckBoxPreference> 
  5. <CheckBoxPreference android:key="apply_gps" 
  6. androidandroid:summary="定位到街道級別(需要消耗更多的電量以及天氣允許)"android:title="使用GPS"> 
  7. </CheckBoxPreference> 
  8. </PreferenceCategory> 

以上代碼當然也可以用Android提供的IDE工具直接生成。視頻結構如下:    

PreferenceCategory屬性分析:

title:顯示的標題

key:唯一標識(至少在同一程序中是唯一),SharedPreferences也將通過此Key值進行數據保存,也可以通過key值獲取保存的信息 (以下相同)

CheckBoxPreference屬性分析:

Key:唯一標識

title:顯示標題(大字體顯示)

summary:副標題(小字體顯示)

defaultValue:默認值(當然,此處只能是true或false了)

Preference.xml的第二部分為“無線和網絡設置”,此部分包括的內容比較多,也稍微復雜,一步一步來分析。

xml代碼:

  1. <PreferenceCategory android:title="無線和網絡設置"> 
  2.  <CheckBoxPreference android:key="apply_fly" 
  3. android:summary="禁用所有無線連接" android:title="飛行模式"> 
  4. </CheckBoxPreference> 
  5. <CheckBoxPreference android:key="apply_internet" 
  6. android:summary="禁用通過USB共享Internet連接"                android:title="Internet共享"> 
  7. </CheckBoxPreference> 
  8. <CheckBoxPreference android:key="apply_wifi" 
  9. android:summary="打開Wi-Fi" android:title="Wi-Fi"> 
  10. </CheckBoxPreference> 
  11. <Preference android:summary="設置和管理無線接入點" android:title="Wi-Fi設置" 
  12. android:dependency="apply_wifi" android:key="wifi_setting"> 
  13. </Preference> 
  14. <CheckBoxPreference android:key="apply_bluetooth" 
  15. android:summary="啟用藍牙" android:title="藍牙"> 
  16. </CheckBoxPreference> 
  17. <Preference android:summary="管理連接、設備設備名稱和可檢測性" 
  18. android:title="藍牙設置" android:dependency="apply_bluetooth" 
  19. android:key="bluetooth_setting"> 
  20. </Preference> 
  21. <EditTextPreference android:key="number_edit" 
  22. android:title="輸入電話號碼"> 
  23. </EditTextPreference> 
  24. <ListPreference android:title="部門設置" android:entries="@array/department" 
  25. androidandroid:entryValues="@array/department_value"android:dialogTitle="選擇部門" 
  26. android:key="depart_value"> 
  27. </ListPreference> 
  28. <RingtonePreference android:ringtoneType="all" android:title="玲聲"                              
  29. android:showDefault="true" android:key="ring_key"                             
  30. android:showSilent="true"> 
  31. </RingtonePreference> 
  32. </PreferenceCategory> 

對應的Structure圖:

第二部分中前三個都為CheckBoxPreference,不心多說,從<Preference android:key="bluetooth_setting"/>開始。

#p#

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文件中內容:

  1. <resources> 
  2. <string-array name="department"> 
  3. <item>綜合部</item> 
  4. <item>行政部</item> 
  5. <item>外貿部</item> 
  6. </string-array> 
  7. <string-array name="department_value"> 
  8. <item>001</item> 
  9. <item>002</item> 
  10. <item>003</item> 
  11. </string-array></resources> 

RingtonePreference :玲聲(暫時沒有用到過),暫時略過。

OK,Preference.xml內容已經分析完畢,屬性都大致相同,相信親自動力一試也就那么回事。那么如何把Preference.xml中內容展現出來呢?

Layout是通過繼續自Activity的類來進行顯示的,前面提到過,PreferenceActivity是專門用于顯示preference的,所以只要創建一個繼承自PreferenceActivity類即可。代碼

如下:

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

接下來就是運行程序,顯示勞動成果。至此,工作已經完成大半,所有的值都會保存到SharedPreferences中,我們也可以讀取到保存的結果。

還有一個重要的問題,就是如何響應PreferenceActivity的操作。其實只要重寫PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通過參數preference來判斷是對那一個元素進行的,并根據需要進行操作。

  1. @Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,  
  2.   Preference preference) {  
  3.  return false;  

【編輯推薦】

Android開發中插入新的Activity

Android智能手機操作系統

詳解Android首選項框架ListPreference

責任編輯:zhaolei 來源: 網絡文摘
相關推薦

2011-06-01 13:22:25

Android Alarm

2013-03-28 16:31:48

AIDL的簡單使用Android中AID

2009-05-30 09:29:52

AndroidGoogle移動OS

2013-03-27 09:47:01

Android開發SQAndroid SDK

2013-06-08 17:09:35

Android開發移動開發XML解析

2017-05-24 09:43:42

2013-02-19 13:42:30

Android開發string

2017-01-10 19:21:06

Android APISharedPrefe

2023-12-07 08:22:58

Android應用

2015-01-07 14:41:32

Android全局變量局部變量

2013-04-15 09:48:40

AndroidAVD錯誤處理方法

2011-06-01 14:20:06

Android Selector

2011-05-30 17:31:51

Android 模擬SD卡

2016-03-25 10:21:22

androidIntentServi代碼

2010-02-03 15:59:08

Android組件

2017-02-08 12:28:37

Android變量總結

2011-02-16 09:57:41

2011-03-07 15:51:41

FileZilla

2015-08-21 10:36:32

.NETRedis

2015-01-21 16:25:29

Swift指針
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品日韩一区 | 毛色毛片免费看 | 免费日韩av | 日韩网站在线 | 一色桃子av一区二区 | 毛片一级黄色 | 欧美国产日韩在线 | 成人在线中文 | 人人插人人 | 欧美黄色大片在线观看 | 国产一区二区在线视频 | 精品美女 | 欧美专区日韩专区 | 日日操夜夜操天天操 | 亚洲精品国产电影 | 欧美一区二区三区 | 91看片免费版 | 真人毛片| 黄色国产大片 | 国产视频一视频二 | 亚洲精品自在在线观看 | 黄色网址免费看 | 亚洲在线一区 | 韩日av片 | 久久久精品网站 | 色爽女| 亚洲一区二区视频在线观看 | www.久草.com| 男人av网 | 日韩欧美国产一区二区三区 | 亚洲一区二区三区视频免费观看 | 91亚洲精品在线观看 | 精品免费国产一区二区三区四区介绍 | 亚洲一区三区在线观看 | 国产日韩精品一区二区 | 欧美另类视频 | 成人高清视频在线观看 | 欧美专区在线 | 一区二区三区欧美在线 | 91久久精品国产 | 中文字幕日韩欧美 |