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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android学习之Shared Preference

發(fā)布時間:2024/1/17 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习之Shared Preference 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  在之前遇到有個需求是要改settings里面自動轉屏的首選項,于是就學習了下Shared Preference。Shared Preference是一種簡單的、輕量級的鍵/值對機制,用于保存原始應用程序數(shù)據(jù),最常見的就是首選項。

  如果沒有特殊要求,我們可以使用Android提供的框架來創(chuàng)建系統(tǒng)樣式的Preference Screen,在其內(nèi)部可以包含PreferenceCategory和Preference<control>元素的任意組合。建立Preference Screen,需要向里面添加首選項控件,原生的這些控件有:CheckBoxPreference、EditTextPreference、ListPreference、MultiSelectListPreference和RingtonePreference,每種控件至少包含4種屬性:android:key,android:title,android:summary,android:defaultValue,用一種圖來對其進行說明:

?  創(chuàng)建Preference有兩種方法,第一種是使用PreferencesActivity。首先在res/values下創(chuàng)建一個arrays.xml用于存放ListPreference的數(shù)據(jù)

1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string-array name="update_freq_options"> 4 <item>Every Minute</item> 5 <item>5 minutes</item> 6 <item>10 minutes</item> 7 <item>15 minutes</item> 8 <item>Every Hour</item> 9 </string-array> 10 <string-array name="magnitude"> 11 <item>1</item> 12 <item>3</item> 13 <item>5</item> 14 <item>6</item> 15 <item>7</item> 16 <item>8</item> 17 </string-array> 18 <string-array name="magnitude_options"> 19 <item>1</item> 20 <item>3</item> 21 <item>5</item> 22 <item>6</item> 23 <item>7</item> 24 <item>8</item> 25 </string-array> 26 <string-array name="update_freq_values"> 27 <item>1</item> 28 <item>5</item> 29 <item>10</item> 30 <item>15</item> 31 <item>60</item> 32 </string-array> 33 34 </resources>

然后在res/xml下創(chuàng)建userpreferences.xml,用于定義PreferenceScreen

1 <?xml version="1.0" encoding="utf-8"?> 2 <PreferenceScreen 3 xmlns:android="http://schemas.android.com/apk/res/android"> 4 <CheckBoxPreference 5 android:key="PREF_ANTUO_UPDATE" 6 android:title="Auto refresh" 7 android:summary="Select to turn on automatic updating" 8 android:defaultValue="true"/> 9 <ListPreference 10 android:key="PREF_UPDATE_FREQ" 11 android:title="Prefresh frequency" 12 android:summary="Frequency at which to refresh earthquake list" 13 android:entries="@array/update_freq_options" 14 android:entryValues="@array/update_freq_values" 15 android:dialogTitle="Prefresh frequency" 16 android:defaultValue="60"/> 17 <ListPreference 18 android:key="PREF_MIN_MAG" 19 android:title="Minmum magnitude" 20 android:summary="Select the minimum magnitude earthquake to report" 21 android:entries="@array/magnitude_options" 22 android:entryValues="@array/magnitude" 23 android:dialogTitle="Magnitude" 24 android:defaultValue="3"/> 25 </PreferenceScreen>

最后在MainActivity中重寫onCreate方法,這個MainActivity要繼承PreferenceActivity,使用addPreferencesFromResource添加PreferenceScreen

1 public class MainActivity extends PreferenceActivity 2 { 3 @Override 4 protected void onCreate(Bundle savedInstanceState) 5 { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 addPreferencesFromResource(R.xml.userpreferences); 9 } 10 }

?OK,搞定,效果如圖

?????? ? ? ?? ? ? ??

  第二種方法是使用PreferenceFragment,首先創(chuàng)建UsePreferenceFragment類繼承PreferenceFragment類,重寫onCreate方法,使用addPreferencesFromResource來加載userpreferences.xml

1 public class UserPreferenceFragment extends PreferenceFragment 2 { 3 @Override 4 public void onCreate(Bundle savedInstanceState) 5 { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 addPreferencesFromResource(R.xml.userpreferences); 9 } 10 }

然后在res/xml下創(chuàng)建preference_headers.xml,來關聯(lián)UsePreferenceFragment

1 <?xml version="1.0" encoding="utf-8"?> 2 <preference-headers 3 xmlns:android="http://schemas.android.com/apk/res/android"> 4 <header android:fragment="com.sharedpreferencetest.UserPreferenceFragment" 5 android:title="Settings" 6 android:summary="Earthquake Refresh Settings" /> 7 </preference-headers>

?最后在MainActivity中重寫onBuildHeaders方法

1 public class MainActivity extends PreferenceActivity 2 { 3 @Override 4 public void onBuildHeaders(List<Header> target) 5 { 6 // TODO Auto-generated method stub 7 loadHeadersFromResource(R.xml.preference_headers, target); 8 } 9 }

?搞定,效果如圖:                然后點擊Settings就會進入下個界面

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

轉載于:https://www.cnblogs.com/ppdark/p/3341249.html

總結

以上是生活随笔為你收集整理的Android学习之Shared Preference的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。