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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android之PreferenceActivity

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

現有某Activity專門用于手機屬性設置 那么應該如何做呢?

Activity + Preference 組合 前者用于界面構建 后者用于設置數據存放 其實 這是正確的 但是 這會比較繁瑣 因為 每個設置選項 都要建立與其對應的Preference。所以現在有更好的選擇了那就是本文的主角:PreferenceActivity 。

我們看到Android系統本身就大量用到了PreferenceActivity來對系統進行信息配置和管理,那么它是怎么保存數據的呢,如何創建PrefenceActivity的呢,更關鍵是怎樣觸發相應事件的呢。

PreferenceActivity是如何保存的數據呢?

Android系統有四種基本的數據保存方法:

SharedPreference,文件,SQLite,ContentProvider。Preference,對就是使用SharedPreferneces以鍵值對的形式進行保存的,當然,我們也可以通過SharedPreferences來獲取PreferenceActivity設置的值。

創建一個PreferenceActivity:

創建Android項目,并添加一個Android xml文件。注意,這次選擇的不是Layout,而是Preference,而且注意Folder路徑是 res/xml。

1、在res/xml/下打開添加的preference.xml文件。

下面我們看看PrefeneceActivity都提供了哪幾種元素可供使用。點擊Add按鈕,在打開的新窗口中可以看到以下幾項:

CheckBoxPreference:CheckBox選擇項,對應的值的ture或flase。如圖:

EditTextPreference:輸入編輯框,值為String類型,會彈出對話框供輸入。

ListPreference: 列表選擇,彈出對話框供選擇。

Preference:只進行文本顯示,需要與其他進行組合使用。

PreferenceCategory:用于分組。效果如下:

PreferenceScreen:PreferenceActivity的根元素,必須為它。

?

RingtonePreference:系統玲聲選擇。

?

相應屬性分析:

PreferenceCategory屬性分析:

title:顯示的標題

key:唯一標識(至少在同一程序中是唯一),SharedPreferences也將通過此Key值進行數據保存,也可以通過key值獲取保存的信息 (以下相同)。

CheckBoxPreference屬性分析:

Key:唯一標識.

title:顯示標題(大字體顯示)

summary:副標題(小字體顯示)

defaultValue:默認值(當然,此處只能是true或false了)

Preference屬性分析:

Key:唯一標識.

title:顯示標題(大字體顯示)

summary:副標題(小字體顯示)

dependency:附屬,即標識此元素附屬于某一個元素(通常為CheckBoxPreference)。dependency值為所附屬元素的key。上面代碼中的Preference元素附屬于key等于“apply_bluetooth”的CheckPreference元素,當CheckPreference值為true時,Preference則為可用,否則為不可用。

EditTextPreperence屬性分析:

Key:唯一標識.

title:顯示標題(大字體顯示)

ListPreference屬性分析:

Key:唯一標識.

title:顯示標題(大字體顯示)

dialogTitle:彈出對話框的標題

entries:列表中顯示的值。為一個數組,通讀通過資源文件進行設置。

entryValues:列表中實際保存的值,也entries對應。為一個數組,通讀通過資源文件進行設置。以下代碼顯示的是arrays.xml文件中內容:

PreferenceActivity是專門用于顯示preference的,所以只要創建一個繼承自PreferenceActivity類即可。

public void onCreate(Bundle savedInstanceState) {

??? super.onCreate(savedInstanceState);

??? // 所的的值將會自動保存到?SharePreferences

??? addPreferencesFromResource(R.xml.preference);

}

如何響應PreferenceActivity的操作呢?

其實只要重寫PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通過參數preference來判斷是對那一個元素進行的,并根據需要進行操作。

?測試代碼:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

??? <PreferenceCategory
??????? android:key="set_local"
??????? android:title="我的位置" >
??????? <CheckBoxPreference
??????????? android:key="apply_wife"
??????????? android:summary="使用無線網絡在應用程序(例如Google地圖)中查看位置"
??????????? android:title="使用無線網絡" />
??? </PreferenceCategory>

??? <CheckBoxPreference
??????? android:key="apply_gps"
??????? android:summary="定位到街道級別(需要消耗更多的電量以及天氣允許)"
??????? android:title="使用GPS" >
??? </CheckBoxPreference>

??? <PreferenceCategory
??????? android:key="set_net"
??????? android:title="無線和網絡設置" >
??????? <CheckBoxPreference
??????????? android:key="apply_fly"
??????????? android:summary="禁用所有無線連接"
??????????? android:title="飛行模式" >
??????? </CheckBoxPreference>
??????? <CheckBoxPreference
??????????? android:key="apply_internet"
??????????? android:summary="禁用通過USB共享Internet連接"
??????????? android:title="Internet共享" >
??????? </CheckBoxPreference>
??????? <CheckBoxPreference
??????????? android:key="apply_wifi"
??????????? android:summary="打開Wi-Fi"
??????????? android:title="Wi-Fi" >
??????? </CheckBoxPreference>

??????? <Preference
??????????? android:dependency="apply_wifi"
??????????? android:key="wifi_setting"
??????????? android:summary="設置和管理無線接入點"
??????????? android:title="Wi-Fi設置" >
??????? </Preference>

??????? <CheckBoxPreference
??????????? android:key="apply_bluetooth"
??????????? android:summary="啟用藍牙"
??????????? android:title="藍牙" >
??????? </CheckBoxPreference>

??????? <Preference
??????????? android:dependency="apply_bluetooth"
??????????? android:key="bluetooth_setting"
??????????? android:summary="管理連接、設備設備名稱和可檢測性"
??????????? android:title="藍牙設置" >
??????? </Preference>

??????? <EditTextPreference
??????????? android:key="number_edit"
??????????? android:title="輸入電話號碼" >
??????? </EditTextPreference>

??????? <ListPreference
??????????? android:dialogTitle="選擇部門"
??????????? android:entries="@array/department"
??????????? android:entryValues="@array/department_value"
??????????? android:key="depart_value"
??????????? android:title="部門設置" >
??????? </ListPreference>

??????? <RingtonePreference
??????????? android:key="ring_key"
??????????? android:ringtoneType="all"
??????????? android:showDefault="true"
??????????? android:showSilent="true"
??????????? android:title="鈴聲" >
??????? </RingtonePreference>
??? </PreferenceCategory>

</PreferenceScreen>

?

?

總結

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

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