欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

安卓Preference詳解 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

安卓Preference詳解

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):262


Preference 用來治理應(yīng)用法度榜樣的偏好設(shè)置和包管應(yīng)用這些的每個應(yīng)用法度榜樣的所有參數(shù) 擁有同樣的方法和用戶體驗   并且體系和其他應(yīng)用法度榜樣的UI保持偏一致。
一個應(yīng)用法度榜樣的偏好部分應(yīng)作為一個自力的晃蕩擴大preferenceactivity類 類中的對象應(yīng)當(dāng)是preferencescreen ,preferencescreen包含偏好等元素的構(gòu)造的根元素 比如checkboxpreference EditTextPreferenceListPreferencePreferenceCategoryRingtonePreference.

對于一個給定的偏好設(shè)置將主動保存到SharedPreferences , 拿到SharedPreferences應(yīng)用實例的很簡單getsharedpreferences();值的留意的是保存首選項只能由創(chuàng)建的應(yīng)用法度榜樣去操作。
一般設(shè)置對應(yīng)的UI如圖
[img]http://img.blog.csdn.net/20150105225901589?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2s3MTk4ODc5MTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center



android 3.0以下版本,必須應(yīng)用PreferenceActivity類來構(gòu)建。  高于或等于android 3.0版本 應(yīng)用PreferenceFragment。當(dāng)然設(shè)備屏幕如不雅足夠大年夜的話照樣可以應(yīng)用PreferenceActivity創(chuàng)建雙面板構(gòu)造來顯示多組設(shè)置
安卓給我們供給了一下接口:

Preference.OnPreferenceChangeListener

接口定義一個回調(diào)時調(diào)用的值Preference由用戶改變了,是嗎 關(guān)于設(shè)置和/或持久化。

Preference.OnPreferenceClickListener

接口定義一個回調(diào)時被調(diào)用Preference是 點擊。

PreferenceManager.OnActivityDestroyListener

接口定義一個類時,將調(diào)用容器的晃蕩 被摧毀。

PreferenceManager.OnActivityResultListener

接口定義一個類時,將調(diào)用容器的晃蕩 接收到一個晃蕩的結(jié)不雅。

PreferenceManager.OnActivityStopListener

接口定義一個類時,將調(diào)用容器的晃蕩 是停止了。
也定義了如下api:

CheckBoxPreference

一個Preference供給checkbox小部件 功能。

DialogPreference

一個基類Preference對象 基于對話框的。

EditTextPreference

一個Preference許可字符串 輸入。

ListPreference

一個Preference顯示條目標(biāo)列表 一個對話框。

Preference

代表的根本UI構(gòu)建的偏好 塊顯示的PreferenceActivity的情勢ListView。

Preference.BaseSavedState

一個基類來治理實例的狀況Preference。

preferenceactivity

顯示了一個層次Preference對象作為 列表,可能跨越多個屏幕。

PreferenceCategory

用于集團Preference對象 并供給一個殘疾人標(biāo)題膳綾擎。

PreferenceGroup

一個容器為多個Preference對象。

PreferenceManager

用于贊助創(chuàng)建Preference層次構(gòu)造 大年夜晃蕩或XML。

PreferenceScreen

代表一個頂級Preference那 是優(yōu)先的層次構(gòu)造的根。

RingtonePreference

一個Preference許可用戶選擇大年夜這些設(shè)畢喔贍鈴聲。

1 Preference 可實現(xiàn)的接口
 interfacePreference.OnPreferenceChangeListener(偏好值已更改的用戶和改變的時刻 調(diào)用) Preference.OnPreferenceClickListener(偏好設(shè)置被點擊的時刻調(diào)用 )

裝載請標(biāo)明出處::http://blog.csdn.net/sk719887916

2.Preference元素的通用XML Attributes:    


android:key :      key:獨一標(biāo)識,SharedPreferences也精曉過此Key值進(jìn)行數(shù)據(jù)保存,也可以經(jīng)由過程key值獲取保存的信息 。          
android:defaultValue : 默認(rèn)值。 例如,CheckPreference的默認(rèn)值可為”true”,默認(rèn)為選中狀況。
android:enabled :      表示該Preference是否可用狀況。     
android:title :              每個Preference在PreferenceScreen構(gòu)造上顯示的標(biāo)題——大年夜標(biāo)題  
android:summary :      每個Preference在PreferenceScreen構(gòu)造上顯示的標(biāo)題——小標(biāo)題(可以沒有)
android:persistent:    表示Preference元素所對應(yīng)的值是否寫入sharedPreferen文件中,如不雅是true,則表示寫入;不然,則表示不寫入該Preference元素的值。
android:layout:         在一個preferenceactivity的偏好構(gòu)造 用于填充view
android:dependency:    表示一個Preference(用A表示)的可用狀況依附別的一個Preference(用B表示)。B可用,
                                              則A可用;B弗采取,則A弗采取。
android:icon:    偏好擱筆    對于偏浩揭捉擇擱筆必須是一個引用到另一個資本的情勢或以packagetypename 主題屬性.
android:disableDependentsState:  與android:dependency相反。B可用,則A弗采??;B弗采取,則A可用。
android:order:表示偏好次序,對于偏好較低的值的次序是先點如不雅不指定默認(rèn)的排序?qū)⒆帜副仨毷且粋€整數(shù),如100,這也可能是一個參考值在含有這類這相當(dāng)于全局屬性資本符號秩序的情勢或 情勢packagetypename主題屬性的一個資本。

android:shouldDisableView:是否被禁用,這種偏好是必須是布爾值true或false 這也可能是一個參考的情勢或主題屬性packagetypename資本,packagetypename情勢包含一個值   相當(dāng)于全局屬性資本符號shoulddisableview相干辦法

android:selectable:偏好是否是可選的。

android:widgetLayout:可以做小清晨件部分的構(gòu)造。
android:fragment:  應(yīng)用時,可以碎片化PreferenceActivity。

3.顯示Preference構(gòu)造構(gòu)造的辦法為:


           使我們的Activity持續(xù)PreferenceActivity,然后在onCreate()辦法中經(jīng)由過程   
      addPreferencesFromResource(R.xml.custom_preference) (我們自定義的Preference 構(gòu)造)。
      怎么樣,是不是似曾了解?稍后會用一個Demo來為您臚陳。
 
   常用的方軌則包含:
                getKey()            setKey()
             getSummary()        setSummary()
             getText()           setText()
      getXXX()代表取得xxx屬性的值。
  一個簡略單純的效不雅圖如下:
     [img]http://img.blog.csdn.net/20150105232642680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2s3MTk4ODc5MTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
 

4.Preference的跳轉(zhuǎn):


     辦法一:在設(shè)備每個Preference元素節(jié)點時,我們可以顯示為點擊它時所跳轉(zhuǎn)的Intent。點擊該Preference,跳轉(zhuǎn)至目標(biāo)Intent。除非在onPreferenceTreeClick()辦法中進(jìn)行決定。在xml中設(shè)備如下:
</pre><pre name="code" class="java" style="font-size: 14px; color: rgb(34, 34, 34);">1.<Preference android:key="wifi_setting" android:title="Wi-Fi設(shè)置"  
2.    android:summary="設(shè)置和治理無線接入點" android:dependency="apply_wifi">  
3.    <!-- 點擊時 自定義一個默認(rèn)跳轉(zhuǎn)Intent  action指定隱式Intent -->  
4.    <!-- action指定隱式Intent ; targetPackage和targetClass指定顯示Intent-->  
5.    <intent android:action="com.feixun.action.seemAction"   
6.        android:targetPackage="com.feixun.qin" android:targetClass="com.feixun.qin.MainActivity" />  
7.</Preference>  

8. android:key 獨一標(biāo)識符。它對應(yīng)保存的XML保存的設(shè)備文件中的節(jié)點的 name屬性
9. android:defaultValue 默認(rèn)值,對應(yīng)XML中的Value屬性的值。
10. 
     辦法二:可以在onPreferenceTreeClick()創(chuàng)建新的intent顯示的進(jìn)行跳轉(zhuǎn)。
 
  接下來,對每個Preference的的獨有XML Attributes和辦法進(jìn)行一下總結(jié),使大年夜家有更好的深刻懂得。
       1、EditPreference 
        可輸入的設(shè)置項
            辦法:
               getEditText()  返回的是我們在該控件中輸入的文本框值
               getText()     返回的是我們之前sharedPreferen文件保存的值
            
                     
        2、ListPreference
         多選對話框設(shè)置項
          XML Attributes:
              android:dialogTitle:彈出控件對話框時顯示的標(biāo)題
              android:entries:類型為array,控件欲顯示的文本
              android:entryValues:類型為array,與文本相對應(yīng)的key-value鍵值對,value保存至sharedPreference文件
              解釋:entries和entryValue屬性應(yīng)用的數(shù)組為定義在資本文件arrays.xml的數(shù)組名:
          辦法:
              CharSequence[]    getEntries(): 返回的是控件顯示文本的一個”key”數(shù)組,對應(yīng)于屬性android:entries
              CharSequence[]    getEntryValues():返回的一個”value”數(shù)組,對應(yīng)于屬性android: entryValues
              CharSequence      getEntry(): 返回當(dāng)前選擇文本
                String          getValue() :返回當(dāng)前選中文本選中的value 。
       其實用法和對選對話框一致 只不過做了保存設(shè)置。
                                  
         采取的數(shù)組為:      
entries:列表中顯示的值。為一個數(shù)組,通讀經(jīng)由過程資本文件進(jìn)行設(shè)置。
entryValues:列表中實際保存的值,也entries對應(yīng)。為一個數(shù)組,通讀經(jīng)由過程資本文件進(jìn)行設(shè)置。以下代碼顯示的是arrays.xml文件中內(nèi)容:
<resources>
<string-array name="department">
<item>春節(jié)</item>
<item>元旦</item>
<item>元宵</item>
</string-array>
<string-array name="department_value">
<item>001</item>
<item>002</item>
<item>003</item>
</string-array>
</resources>

   3 CheckBoxPreference
   可點擊的設(shè)置項
  4  dialogPreference
    彈出一個對話框 用戶選擇肯定和撤消 
           
                 
 
 重點:分析Preference事宜
      以下摘自收集:
------------------------------------------------------------------------------------
   ★在PreferenceActivity辦法中,一個比較重要的監(jiān)聽點擊事宜辦法為:
         public booleanonPreferenceTreeClick (PreferenceScreen preferenceScreen, Preference preference)
                           說 明 : 當(dāng)Preference控件被點擊時,觸發(fā)該辦法。
           參數(shù)解釋: preference 點擊的對象。
           返回值:   true  代表點擊事宜已成功捕獲,無須履行默認(rèn)動作或者返回上層調(diào)用鏈。 例如,不跳轉(zhuǎn)至默認(rèn)Intent。
                 false 代表履行默認(rèn)動作并且返回上層調(diào)用鏈。例如,跳轉(zhuǎn)至默認(rèn)Intent。
      在我們持續(xù)PreferenceActivity的Activity可以重寫該辦法,來完成我們對Preference事宜的捕獲。
   
     信賴經(jīng)由過程前面的介紹,你必定知道了若何應(yīng)用了Preference家族并且對其觸發(fā)辦法。下面我們拋出別的兩枚炸彈——
Preference相干的兩個重要監(jiān)聽接口。
 
   ★  Preference.OnPreferenceChangeListener     該監(jiān)聽器的一個重要辦法如下:
        boolean onPreferenceChange(Preference preference,Object objValue)
             解釋:  當(dāng)Preference的元素值發(fā)送改變時,觸發(fā)該事宜。
             返回值:true  代表將新值寫入sharedPreference文件中。
                     false 則不將新值寫入sharedPreference文件
 
  ★   Preference.OnPreferenceClickListener      該監(jiān)聽器的一個重要辦法如下:
         public booleanonPreferenceClick(Preference preference)
             解釋:當(dāng)點擊控件時觸發(fā)產(chǎn)生,可以做響應(yīng)操作。
                             
    那么當(dāng)一個Preference控件實現(xiàn)這兩個接口時,當(dāng)被點擊或者值產(chǎn)生改變時,觸發(fā)辦法是若何履行的呢?事實上,
 它的觸發(fā)規(guī)矩如下:
      1 先調(diào)用onPreferenceClick()辦法,如不雅該辦法返回true,則不再調(diào)用onPreferenceTreeClick辦法 ;
       如不雅onPreferenceClick辦法返回false,則持續(xù)調(diào)用onPreferenceTreeClick辦法。
      2 onPreferenceChange的辦法自力與其他兩種辦法的運行。也就是說,它老是會運行。
 
彌補:點擊某個Preference控件后,會先回調(diào)onPreferenceChange()辦法,等于否保存值,然后再回調(diào)onPreferenceClick以及onPreferenceTreeClick()辦法,是以在onPreferenceClick/onPreferenceTreeClick
辦法中我們獲得的控件值就是最新的Preference控件值。
 
  那么,開端我們的拭魅戰(zhàn)之旅吧! 下面給您最火熱的┞方場。
    1,新建我們的preference.xml文件。
         ① 在res文件夾下,新建xml文件夾。
         ② 在新建的xml文件夾下,新建Android XML File。定名為mypeference.xml 。類型選擇為Preference。
         ③ 打開我們的mypeference.xml,視圖選擇Structure。可以手動設(shè)備我們的構(gòu)造文件。可選的Preference空間如下:
               
導(dǎo)出的xml文件:yourpageName"_prefenrences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="Apply_wireless" value=http://www.sjsjw.com/100/000217MYM022474/"false" />


[email protected]


android.widget.EditText@41a45c00

------------------------------------------------------------------------------------------------------------------------------
 

二、PreferenceFragment


PreferenceFragment可以在一屏幕放上多個SharedPreferences片段。實現(xiàn)多屏構(gòu)造顯示 ,pad用的居多 效不雅如下。

[img]http://img.blog.csdn.net/20150105234203343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2s3MTk4ODc5MTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center


 用于顯示層次構(gòu)造的偏好對象列表   這些列表的選項將主動保存到SharedPreferences作為與用戶交互以檢索實例,在該片段SharedPreferences偏好的層次構(gòu)造用默認(rèn)的 sharedpreferences去拿值。
此外所示的偏好將遵守體系偏好視覺風(fēng)格很輕易創(chuàng)建一個層次構(gòu)造光鮮的偏好,可以顯示在多個屏幕上經(jīng)由過程XML設(shè)備,因為這些原因,建議應(yīng)用此片段作為一個父類的處理SharedPreferences。
PreferenceFragment偏好層次可以以多種方法形成。

@  大年夜XML文件中指定的層次構(gòu)造
@ 大年夜不合的晃蕩,可以指定本身的愛好 經(jīng)由過程 XML文件的Activity meta-data中。
@年腋荷瑣對象層次構(gòu)造植根于preferencescreen.


應(yīng)用addpreferences 參加要展示的xml, xml可以給根元素添加一個子元素,顯示一個充斥屏幕的preferencescreen ,其xml可以如許寫。


代碼示例:
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
            android:title="顯示一排偏好">

        <CheckBoxPreference
                android:key="checkbox_preference"
                android:title="開關(guān)"
                android:summary="@string/summary_checkbox_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="這是對畫框偏好">

        <EditTextPreference
                android:key="edittext_preference"
                android:title="@string/title_edittext_preference"
                android:summary="@string/summary_edittext_preference"
                android:dialogTitle="@string/dialog_title_edittext_preference" />

        <ListPreference
                android:key="list_preference"
                android:title="@string/title_list_preference"
                android:summary="@string/summary_list_preference"
                android:entries="@array/entries_list_preference"
                android:entryValues="@array/entryvalues_list_preference"
                android:dialogTitle="@string/dialog_title_list_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/launch_preferences">

        <!--這個標(biāo)簽作為一個屏幕preferencescreen打破類似于分頁符在字處理像其他偏好類型我們分派一個關(guān)鍵在這里可以或許很好的保存和恢復(fù)它的實例的狀況. 就是所謂的同屬一個一樣的類別<pre name="code" class="java" style="color: rgb(34, 34, 34); font-size: 14px; line-height: 19px;"><span style="font-family: Roboto, sans-serif;">--></span>
<PreferenceScreen android:key="screen_preference" android:title="@string/title_screen_preference" android:summary="@string/summary_screen_preference"> <!-- 你可以定義更多的Preference,將鄙人一屏幕上顯示. 點擊的時刻這個類別會充斥屏幕 -->
<CheckBoxPreference android:key="next_screen_checkbox_preference" android:title="@string/title_next_screen_toggle_preference" android:summary="@string/summary_next_screen_toggle_preference" /> </PreferenceScreen> <PreferenceScreen android:title="@string/title_intent_preference" android:summary="@string/summary_intent_preference"> <intent android:action="android.intent.action.VIEW" android:data=http://www.sjsjw.com/100/000217MYM022474/"http://www.android.com" />
    <!-- 可以定義一個子sp 包含本身視覺風(fēng)格和主題的  以下倆個子選項屬于同一個類別-->
<CheckBoxPreference android:key="parent_checkbox_preference" android:title="@string/title_parent_preference" android:summary="@string/summary_parent_preference" /> <CheckBoxPreference android:key="child_checkbox_preference" android:dependency="parent_checkbox_preference" android:layout="?android:attr/preferenceLayoutChild" android:title="@string/title_child_preference" android:summary="@string/summary_child_preference" /> </PreferenceCategory></PreferenceScreen>


具體顯示如圖所示:
[img]http://img.blog.csdn.net/20150106000445806?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2s3MTk4ODc5MTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
java 代碼可以如許寫;
public static class PrefsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 加載構(gòu)造
        addPreferencesFromResource(R.xml.preferences);
    }
}
包含如下幾個辦法:
1 要指定添加一個意圖可以應(yīng)用:

addPreferencesFromResource (int preferencesResId)


 2 每個意圖可以指定清單中的元數(shù)據(jù)經(jīng)由過程Key來獲取子Preference    ,


Preference findPreference (CharSequence key)


3 獲取根preferencescreen:

PreferenceScreen getPreferenceScreen ()


4 設(shè)置一個滿屏的Preference

setPreferenceScreen (PreferenceScreen preferenceScreen)

其他生命會周期和activty的一模一樣不做細(xì)說


3 PreferenceGroup


   

一種Preference的父類,如preferencecategory, preferencescreen 做基類容器。構(gòu)造辦法有以下三種,具體請看viewgroup的源代碼 觸類旁通,這里不做細(xì)說




public PreferenceGroup (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)


Added in API level 21

public PreferenceGroup (Context context, AttributeSet attrs, int defStyleAttr)


Added in API level 1

public PreferenceGroup (Context context, AttributeSet attrs)



4 RingtonePreference
    作為鈴聲設(shè)置,(調(diào)用體系的鈴聲設(shè)置) 

              android:ringtoneType:響鈴的鈴聲類型,重要有:ringtone(音樂)、notification(通知)、alarm(鬧鈴)(今后樓主為具體介紹alarm類)
                                      、all(所有可用聲 音類型)。
               android:showDefault :默認(rèn)鈴聲,可以應(yīng)用體系(布爾值---true,false)的或者自定義的鈴聲
               android:showSilent  :指定鈴聲是否為靜音。指定鈴聲包含體系默認(rèn)鈴聲或者自定義的鈴聲

5 SwitchPreference


     類似閣下開關(guān)的設(shè)置項,可以作為一個滑動開關(guān) 
6  TwoStatePreference


有兩個可選狀況偏好合營基類 和SharedPreferences布爾值和可能相干的偏好,enabled 和disabled基于當(dāng)前選中的狀況來
經(jīng)由過程這邊文┞仿大年夜家可以大年夜概懂得了Preference,今后本身的應(yīng)用法度榜樣的設(shè)置頁面可以采取安卓自帶的Preference,不僅做到和系同一樣ui體驗,也能便利同一治理,并且包管參數(shù)情勢一致。裝載請標(biāo)明出處:http://blog.csdn.net/sk719887916

相關(guān)案例查看更多