日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android中preference的使用

對(duì)于preferenceActivity看到很多書中都沒有對(duì)此多做介紹,而我正好又在項(xiàng)目中用到,所以就把自己的使用的在這總結(jié)一下,也方便日后查找。

創(chuàng)新互聯(lián)是一家集成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站設(shè)計(jì)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。

PerferenceActivity是什么,看下面的截圖:

 

Android系統(tǒng)截圖(左)                MusicPlayer Setting截圖(右)
 

好了,我們看到Android系統(tǒng)本身就大量用到了PreferenceActivity來(lái)對(duì)系統(tǒng)進(jìn)行信息配置和管理,那么它是怎么保存數(shù)據(jù)的呢,如何創(chuàng)建PrefenceActivity的呢,更關(guān)鍵是怎樣觸發(fā)相應(yīng)事件的呢。

先看第一個(gè)問題,PreferenceActivity是如何保存的數(shù)據(jù)。對(duì)Android系統(tǒng)了解的都知道,Android系統(tǒng)有四種基本的數(shù)據(jù)保存方法一是SharedPreference,二是文件,三是SQLite,四是ContentProvider??闯鰜?lái)了吧,Preference,對(duì)就是使用SharedPreferneces以鍵值對(duì)的形式進(jìn)行保存的,當(dāng)然,我們也可以通過(guò)SharedPreferences來(lái)獲取PreferenceActivity設(shè)置的值。

第二個(gè)問題:如何創(chuàng)建一個(gè)PreferenceActivity。 其實(shí)Eclipse提供了相應(yīng)的創(chuàng)建工具,和創(chuàng)建Layout是基本相同的。步驟如下:

創(chuàng)建Android項(xiàng)目,并添加一個(gè)Android xml文件。注意,這次選擇的不是Layout,而是Preference,而且注意Folder路徑是 res/xml.

 

添加完成之后,在res/xml/下打開添加的preference.xml文件??梢钥吹紸ndroid也為我們提供兩種編輯模式,可視化的結(jié)構(gòu)設(shè)計(jì)及xml源碼設(shè)計(jì)。推薦使用structure進(jìn)行創(chuàng)建。如圖所示:

 

下面我們看看PrefeneceActivity都提供了哪幾種元素可供使用。點(diǎn)擊Add按鈕,在打開的新窗口中可以看到以下幾項(xiàng):

CheckBoxPreference:CheckBox選擇項(xiàng),對(duì)應(yīng)的值的ture或flase。如圖:

EditTextPreference:輸入編輯框,值為String類型,會(huì)彈出對(duì)話框供輸入

ListPreference: 列表選擇,彈出對(duì)話框供選擇。

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

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

 

RingtonePreference:系統(tǒng)玲聲選擇。
 

OK,Preferenc的基本元素介紹完畢,下一節(jié)將使用它們創(chuàng)建一個(gè)完整的Preference并進(jìn)行顯示。

#p#

分析MusicPlayer Setting,第一部分為“我的位置”,包括“使用無(wú)線網(wǎng)線”和“使用GPS”兩個(gè)部分,而且都是CheckBox,根據(jù)上節(jié)學(xué)習(xí),應(yīng)該包括一個(gè)PreferenceCategory和兩個(gè)CheckBoxPreference。

Xml代碼:

 
 
 
 
  1.  
  2. androidandroid:summary="使用無(wú)線網(wǎng)絡(luò)在應(yīng)用程序(例如Google地圖)中查看位置"android:title="使用無(wú)線網(wǎng)絡(luò)" android:defaultValue="true"> 
  3.  
  4. androidandroid:summary="定位到街道級(jí)別(需要消耗更多的電量以及天氣允許)"android:title="使用GPS"> 
  5.  
  6.  

以上代碼當(dāng)然也可以用Android提供的IDE工具直接生成。視頻結(jié)構(gòu)如下:    

PreferenceCategory屬性分析:

title:顯示的標(biāo)題

key:唯一標(biāo)識(shí)(至少在同一程序中是唯一),SharedPreferences也將通過(guò)此Key值進(jìn)行數(shù)據(jù)保存,也可以通過(guò)key值獲取保存的信息 (以下相同)

CheckBoxPreference屬性分析:

Key:唯一標(biāo)識(shí)

title:顯示標(biāo)題(大字體顯示)

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

defaultValue:默認(rèn)值(當(dāng)然,此處只能是true或false了)

Preference.xml的第二部分為“無(wú)線和網(wǎng)絡(luò)設(shè)置”,此部分包括的內(nèi)容比較多,也稍微復(fù)雜,一步一步來(lái)分析。

xml代碼:

 
 
 
 
  1.  
  2.  
  3. android:summary="禁用所有無(wú)線連接" android:title="飛行模式"> 
  4.  
  5. android:summary="禁用通過(guò)USB共享Internet連接"                android:title="Internet共享"> 
  6.  
  7. android:summary="打開Wi-Fi" android:title="Wi-Fi"> 
  8.  
  9. android:dependency="apply_wifi" android:key="wifi_setting"> 
  10.  
  11. android:summary="啟用藍(lán)牙" android:title="藍(lán)牙"> 
  12.  
  13. android:title="藍(lán)牙設(shè)置" android:dependency="apply_bluetooth" 
  14. android:key="bluetooth_setting"> 
  15.  
  16. android:title="輸入電話號(hào)碼"> 
  17.  
  18. androidandroid:entryValues="@array/department_value"android:dialogTitle="選擇部門" 
  19. android:key="depart_value"> 
  20.  
  21. android:showDefault="true" android:key="ring_key"                             
  22. android:showSilent="true"> 
  23.  
  24.  

對(duì)應(yīng)的Structure圖:

第二部分中前三個(gè)都為CheckBoxPreference,不心多說(shuō),從開始。

#p#

Preference屬性分析: Key:唯一標(biāo)識(shí).

title:顯示標(biāo)題(大字體顯示)

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

dependency:附屬(嘛意思),即標(biāo)識(shí)此元素附屬于某一個(gè)元素(通常為CheckBoxPreference),dependency值為所附屬元素的key。上面代碼中的Preference元素附屬于key等于“apply_bluetooth”的CheckPreference元素,當(dāng)CheckPreference值為true時(shí),Preference則為可用,否則為不可用。

EditTextPreperence屬性分析

Key:唯一標(biāo)識(shí).
 

title:顯示標(biāo)題(大字體顯示)

ListPreference屬性分析:

Key:唯一標(biāo)識(shí).

title:顯示標(biāo)題(大字體顯示)

dialogTitle:彈出對(duì)話框的標(biāo)題

entries:列表中顯示的值。為一個(gè)數(shù)組,通讀通過(guò)資源文件進(jìn)行設(shè)置。

entryValues:列表中實(shí)際保存的值,也entries對(duì)應(yīng)。為一個(gè)數(shù)組,通讀通過(guò)資源文件進(jìn)行設(shè)置。以下代碼顯示的是arrays.xml文件中內(nèi)容:

 
 
 
 
  1.  
  2.  
  3. 綜合部 
  4. 行政部 
  5. 外貿(mào)部 
  6.  
  7.  
  8. 001 
  9. 002 
  10. 003 
  11.  

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

OK,Preference.xml內(nèi)容已經(jīng)分析完畢,屬性都大致相同,相信親自動(dòng)力一試也就那么回事。那么如何把Preference.xml中內(nèi)容展現(xiàn)出來(lái)呢?

Layout是通過(guò)繼續(xù)自Activity的類來(lái)進(jìn)行顯示的,前面提到過(guò),PreferenceActivity是專門用于顯示preference的,所以只要?jiǎng)?chuàng)建一個(gè)繼承自PreferenceActivity類即可。代碼

如下:

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

接下來(lái)就是運(yùn)行程序,顯示勞動(dòng)成果。至此,工作已經(jīng)完成大半,所有的值都會(huì)保存到SharedPreferences中,我們也可以讀取到保存的結(jié)果。

還有一個(gè)重要的問題,就是如何響應(yīng)PreferenceActivity的操作。其實(shí)只要重寫PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通過(guò)參數(shù)preference來(lái)判斷是對(duì)那一個(gè)元素進(jìn)行的,并根據(jù)需要進(jìn)行操作。

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

【編輯推薦】

Android開發(fā)中插入新的Activity

Android智能手機(jī)操作系統(tǒng)

詳解Android首選項(xiàng)框架ListPreference


本文名稱:Android中preference的使用
本文地址:http://www.dlmjj.cn/article/dhehpgh.html