SharedPreferences的使用
来源:互联网 发布:java脚本返回上一页 编辑:程序博客网 时间:2024/06/04 20:14
本文介绍SharedPreferences及PreferenceActivity、PreferenceFragment。
1、SharedPreferences简单使用示例
public class MainActivity extends Activity {private static final String TAG = MainActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().setContentView(R.layout.activity_main);//all apps sharing the same user IDSharedPreferences sp = getPreferences(Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//save 5 kinds of datas: boolean,int,long,float,Stringeditor.putBoolean("isMan", true);editor.putFloat("weight", 68f);editor.putInt("age", 25);editor.putLong("salary", 10000L);editor.putString("name", "Victor");Set<String> relatives = new HashSet<String>();editor.putStringSet("relatives", relatives);//editor.apply();//asynchronous,main threadlong start = SystemClock.elapsedRealtime();editor.commit();Log.i(TAG, "commit:"+(SystemClock.elapsedRealtime()-start)+"ms");}public void onClick(View v){switch (v.getId()) {case R.id.btn:Log.i(TAG, "getLocalClassName()="+getLocalClassName());SharedPreferences sp = getSharedPreferences(getLocalClassName(), Context.MODE_PRIVATE);sp.getBoolean("isMan", false);sp.getFloat("weight", 60);sp.getInt("age", 16);sp.getLong("salary", 6000L);sp.getString("name", "none");sp.getStringSet("relatives", null);Map<String, ?> map = sp.getAll();if(sp.contains("salary")){long salary = (Long) map.get("salary");Log.i(TAG, "contains:"+salary);}}}}
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="get" android:onClick="onClick"/></LinearLayout>
2、PreferenceActivity、PreferenceFragment使用示例
1) MyFragmentPreferenceActivity.java
public class MyFragmentPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{private static final String TAG = MyFragmentPreferenceActivity.class.getSimpleName();@Overridepublic void onBuildHeaders(List<Header> target) {super.onBuildHeaders(target);loadHeadersFromResource(R.xml.preferenceheaders, target);//getPackageName()+"_preferences"SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);sharedPreferences.registerOnSharedPreferenceChangeListener(this);}@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {if(key.equals("CheckBox")){boolean value = sharedPreferences.getBoolean(key, false);Log.i(TAG, "CheckBox:"+value);}else if(key.equals("ListPreference")){String value = sharedPreferences.getString(key, null);Log.i(TAG, "ListPreference:"+value);}else if(key.equals("MultiSelectListPreference")){Set<String> values = sharedPreferences.getStringSet("MultiSelectListPreference", null);Log.i(TAG, "MultiSelectListPreference:"+values);}else if(key.equals("RingtonePreference")){String value = sharedPreferences.getString("RingtonePreference", null);//content://media/internal/audio/media/49Log.i(TAG, "RingtonePreference:"+value);}}}2) preferenceheaders.xml
preference-headers作为顶级标签,包含多个header
<?xml version="1.0" encoding="utf-8"?><preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> <header android:fragment="com.qinuli.buttontest2.MyPreferenceFragment" android:title="My header" android:icon="@drawable/ic_launcher" android:summary="description of header"/> <header android:title="Intent" android:summary="launch an intent"> <intent android:action="android.settings.DISPLAY_SETTINGS"/> </header></preference-headers>3) MyPreferenceFragment.java
public class MyPreferenceFragment extends PreferenceFragment {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.userpreferences);}}4) userpreferences.xml
PreferenceScreen作为顶级标签,包含多个PreferenceCategory
<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Category1"> <CheckBoxPreference android:key="CheckBox" android:title="CheckBox" android:summaryOn="laugh" android:summaryOff="cry" android:defaultValue="true"/> <ListPreference android:key="ListPreference" android:title="ListPreference" android:summary="many things, but you can only choose one" android:entries="@array/mylist" android:entryValues="@array/myvalues"/> <PreferenceScreen android:title="PreferenceScreen" android:summary="child screen"> <SwitchPreference android:key="SwitchPreference" android:title="SwitchPreference" android:summaryOn="Active" android:summaryOff="Deactive" android:switchTextOn="Good" android:switchTextOff="Bad"/> </PreferenceScreen> </PreferenceCategory> <PreferenceCategory android:title="Category2"> <EditTextPreference android:key="EditText" android:title="EditText" android:summary="input something" android:defaultValue="fantastic job!"/> <MultiSelectListPreference android:key="MultiSelectListPreference" android:title="MultiSelectListPreference" android:summary="you can choose as many as you want" android:entries="@array/mylist" android:entryValues="@array/myvalues"/> <RingtonePreference android:key="RingtonePreference" android:title="RingtonePreference" android:summary="select your favourite ringtone"/> </PreferenceCategory> <PreferenceScreen android:title="Intent" android:summary="launch an intent"> <intent android:action="android.settings.WIFI_SETTINGS"/> </PreferenceScreen></PreferenceScreen>5) strings.xml
ListPreference引用的资源
<resources> <string name="app_name">ButtonTest2</string><string-array name="mylist"> <item >good</item> <item >great</item> <item >nice</item> <item >fine</item> <item >beautiful</item> <item >pretty</item></string-array><string-array name="myvalues"> <item >_GOOD</item> <item >_GREAT</item> <item >_NICE</item> <item >_FINE</item> <item >_BEAUTIFUL</item> <item >_PRETTY</item></string-array></resources>
0 0
- SharedPreferences的使用
- SharedPreferences的使用
- SharedPreferences的使用
- SharedPreferences的使用
- SharedPreferences的使用
- android SharedPreferences 的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- android SharedPreferences 的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- Android SharedPreferences的使用
- Unity回顾3
- 线性变换之缩放
- 华为OJ 201301 JAVA题目0-1级
- ios使用代理的时候一定要用weak
- 信息类专业国际会议/期刊影响因子汇总
- SharedPreferences的使用
- android out of memory(OOM)产生原因
- 黑马程序员——Java基础---抽象类和接口的区别
- Android ViewPager用法
- zoj1586 QS Network(最小生成树)
- c语言中注意细节
- Apache DBUtils使用总结
- 随想录(一个android原生app的代码赏析)
- OC日期与时间