【Based Android】PreferenceActivity設定菜單介紹(續)

來源:互聯網
上載者:User

   在上一篇文章中http://www.cnblogs.com/octobershiner/archive/2011/11/07/2239621.html ,和大家分享了一下android中實現設定的一個非常重要的類SharedPreference,其實android為實現程式的設定介面提佛提提供了更為簡介的方案,那就是今天要介紹的PreferenceActivity,我們看到很多的android程式設定介面都是類似的,其中大部分都採用了這樣的一種方式。

   android為了方便開發,提供了一個特殊的activity類,PreferenceActivity,用來快速的實現一個設定介面,從名字就可以看出是繼承自Activity類(實際上是ListActivity),因而生命週期是一樣的。

   那麼常見的設定菜單有兩種,一是只有一個header的(左圖),另一種是在3.0發布後加入的,多header的設定菜單(右圖)。那麼要實現多header的設定菜單,需要引用新的類PreferenceFragment,我們今天只討論實現一個header的(比較常用)。

 

                        

   

    那麼如何用PreferenceActivity呢?

    首先我們需要一個設定檔,類似於main.xml,就是我們需要一個資源布局檔案。

    在xml檔案夾下建立一個conf.xml檔案用於儲存我們的布局

  

    目前android只提供了幾種可選的組建,包括

    PreferenceScreen 表示一個新的設定視窗,也是我們的布局的根標籤。

    CheckBoxPreference 表示勾選的選項

    ListPreference 表示一個選項列表

    EditTextPreference 表示一個文本輸入框

    PreferenceCategory 用於分組

    RingtonePreference 用於鈴聲的設定

    這些都繼承自Preference,他們都有的特點就是都有一個key,這個的作用和我們常用的id差不多,一會如果我們要引用這個組建就要通過key來找到他。還有一個共有的屬性就是title,他就是每一個設定組建所顯示的內容,summary屬性顯示下面的文本。

    其中比較特殊的是ListPreference,他需要關聯一個數組資源,如上面代碼中的@array/user_type

    更多的組建,大家可以產看sdk文檔,很多還沒有提供在xml直接使用。

    那麼如何將xml和activity關聯呢?

    我們需要在onCreate方法裡面調用

   

    這樣程式啟動就會自動載入這個視圖檔案,效果如下

     

      這個時候如果我們修改了配置的選項,會預設的儲存在data/data目錄下,如果我們想擷取這些值,就可以參照上一篇文章中說講的內容了。我們現在看一下這些資料存在哪裡,在終端中開啟adb shell ,我們切到data/data目錄下,進入到我們的包中,可以看到shared_prefs檔案夾,裡面就有我們的com.yui_preferences.xml檔案,開啟就可以看到已經寫入的一些資料了。

    

    

      PreferenceActiviy實現事件監聽

     preferenceAcitivity提供了連個事件監聽器

     OnPreferenceChangeListener用來監聽某個屬性是否發生了變化。它只有一個方法:

     public abstract boolean onPreferenceChange (Preference preference, Object newValue)

     第一個參數是 發生變化的組件,第二個參數是新的數值

     如果返回true的話就將變化寫入檔案,返回false不發生改變

 

     第二個監聽器更為靈活

     OnPreferenceClickListener 用來監聽某個選項是否被點擊,它也只有一個方法

     public abstract boolean onPreferenceClick (Preference preference)  
     返回true表示處理事件

 

    接下來就是要給我們的組建註冊監聽器:

   

   

為了方便示範,我們使用了Toast即時的顯示資訊,這個非常簡單,就不多介紹了,那麼在處理事件的時候,我們只需要判斷一下是哪個組件需要響應就好了

 

  最後看一下程式啟動並執行結果吧,當我們改變設定的時候就可以監聽到了,結合上一篇文章就可以完成一個完整的設定---讀寫的模組了。

 

                       

 

     程式的完整原始碼下載:https://github.com/octobershiner/diordna   PreferenceDemo

 

 

 

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.