標籤: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裡。