日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PreferenceScreen 的使用

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PreferenceScreen 的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java代碼:

public class Main3Activity extends PreferenceActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main3); //加載布局文件,相當于setContentView();addPreferencesFromResource(R.xml.dashboard_categories);} }

xml 布局文件,CheckBoxPreference 就相當于CheckBox 加 SharedPreference 的封裝,只要選中之后,就會在shared_prefs文件加下生成對應的xml 文件,key就是xml文件中定義的key:android:key=“checkbox”,如果里面再套一個PreferenceScreen節點,點擊進去就進入PreferenceScreen 這個節點所包含的xml文件。
key 是生成xml,文件所對應的key
title是對應的標題
summary是對應的小標題
icon 是對應的圖標

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ><CheckBoxPreferenceandroid:key="checkbox"android:title="CheckBoxPreference"android:summary="check it box"/><RingtonePreferenceandroid:key="ring"android:title="ringtone"android:summary="check a ringtone"/><PreferenceScreenandroid:key="screen"android:title="PreferenceScreen"android:summary="screen it"><SwitchPreferenceandroid:key="switch"android:title="switchPreference"android:summary="switch it"/><EditTextPreferenceandroid:key="edit"android:title="editPreference"android:summary="OK"/></PreferenceScreen> </PreferenceScreen>

ListPreference 的用法,如下圖所示,點擊Options 彈出對話框,total 是名稱,當選擇check時,此時在xml文件中保存的值是
1,所以entries 屬性,所對應的是單選框的標題,entryValues屬性,所對應的是在xml文件中保存的值

<ListPreferenceandroid:key="list"android:title="Options"android:entries="@array/entry_list"android:entryValues="@array/values_list"android:dialogTitle="list dialogtitle"android:defaultValue="1"/>// value 下的string.xml <resources><string name="app_name">My Application</string><string-array name="entry_list"><item>total</item><item>check</item><item>airplace</item></string-array><string-array name="values_list"><item>0</item><item>1</item><item>2</item></string-array> </resources>


MultiSelectListPreference
它的實現和ListPreference相似,不同的是還可以不選擇或者多個選擇,代碼是和ListPreference一樣的,在xml 保存的數據是set集合:

16
2

運行效果如下圖:

onPreferenceTreeClick,這個方法是點擊時候的回調,然后根據不同的key,進行區分,然后處理事件

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main3);addPreferencesFromResource(R.xml.dashboard_categories);checkbox = (CheckBoxPreference)findPreference("checkbox");hahah = findPreference("ltt");}@Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {if(preference.getKey().equals("checkbox")){Log.i("lgj", "checkbox");}if(preference.getKey().equals("ltt")){Log.i("lgj", "ltt");}return true;}

除了上面這個監聽的方法之外,還有兩個重要的接口:
OnPreferenceChangeListener
當Preference的元素值發送改變時,觸發該事件,記住只有元素值改變才會觸發這個值,返回值為true 表示將新值寫入sharedPreference文件中
false 則不將新值寫入sharedPreference文件

那么這三個點擊事件在一起是什么用的呢?它的規則如下:

點擊某個Preference控件后,會先回調onPreferenceChange()方法,即是否保存值(這個下面會講解這個值是如何保存的),然后再回調onPreferenceClick以及onPreferenceTreeClick()方法,因此在onPreferenceClick/onPreferenceTreeClick方法中我們得到的控件值就是最新的Preference控件值。然后onPreferenceClick會比onPreferenceTreeClick()方法先調用,如果onPreferenceClick方法返回true,那就不會再調用onPreferenceTreeClick()方法,如果onPreferenceClick()返回false就會繼續調用onPreferenceTreeClick()方法

總結

以上是生活随笔為你收集整理的PreferenceScreen 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。