Settings app簡單學習記錄

來源:互聯網
上載者:User

標籤:android   c   class   java   a   http   

Settings是android系統設定的入口。主介面由Settings.java以及settings_headers.xml構成。 

Settings類繼承自PreferenceActivity,而PreferenceActivity又繼承自ListActivity,ListActivity擁有ListView和ListAdapter類型的成員變數。

1,如何使用PreferenceActivity構建頁面

使用addPreferencesFromIntent或者addPreferencesFromResource將定義了headers的內容(如果是從resource中載入,那麼一般是放在xml檔案夾下的檔案)載入進PreferenceActivity。每一個定義的header就是ListView中的一行View,當然,顯示出來的樣式會不同,比如分類標題“無線和網路”和下面的“WLAN”其實都是一個header。

類似於ListView的使用,我們在ListAdapter的getView方法中,可以使用額外的布局檔案,對每一行進行UI定製。比如wlan和bt有開關,那麼就用layout下的perference_header_switch_item.xml來構建view。

在構造各種頁面組件時用了系統內部屬性,如holder.title = (TextView)view.findViewById(com.android.internal.R.id.title);

每一個header對應一個fragment,在settings_headers.xml中使用標籤指定,如android:fragment="com.android.settings.wifi.WifiSettings"

2,開關(switch)的處理

以WLAN開關舉例,在Settings中會構建WifiEnabler的執行個體,將執行個體化的switch傳給WifiEnabler,後續的開關狀態維護,點擊事件監聽全都交給WifiEnabler來處理了。

3,設定值的儲存

在Settings的OnCreate函數中,就出現了getSharedPreferences,所以設定的值將儲存於“/data/data/com.android.settings/shared_prefs”下的com.android.settings_preferences.xml裡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.