Android提供了一个XML驱动的框架,用于为应用程序创建系统样式的PreferenceScreen.
(3.0/API 11 以前)是这样使用的
看代码:
mypreference.xml
- <span style="font-family: Microsoft YaHei; font-size: 14px;"><?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
- <PreferenceCategory android:title="MyCategory" >
- <CheckBoxPreference
- android:key="PREF_AUTO_REFRESH"
- android:defaultValue="true"
- android:summary="select to turn on automatic updating"
- android:title="Auto Refresh" />
- </PreferenceCategory>
- </PreferenceScreen></span>
<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="MyCategory" >
<CheckBoxPreference
android:key="PREF_AUTO_REFRESH"
android:defaultValue="true"
android:summary="select to turn on automatic updating"
android:title="Auto Refresh" />
</PreferenceCategory>
</PreferenceScreen></span>
MainActivity.java
- package com.example.preferencedemo;
- import android.content.SharedPreferences;
- import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
- import android.os.Bundle;
- import android.preference.PreferenceActivity;
- import android.preference.PreferenceManager;
- import android.util.Log;
- import android.view.Menu;
- //当SharedPreferences发生变化的时候,可以监听其变化,并作出相应的处理
- public class MainActivity extends PreferenceActivity implements
- OnSharedPreferenceChangeListener {
- private SharedPreferences mSharedPreferences;
- private boolean mIsAutoRefresh;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.addPreferencesFromResource(R.xml.mypreference);
- // 为PreferenceActivity中的选项记录的SharedPreferences值被存在app沙箱中,
- // 这使得任何app组件都可以访问它(Activity/Service/BroadcastReceiver)
- mSharedPreferences = PreferenceManager
- .getDefaultSharedPreferences(this);
- // 需要注册哦
- mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
- mIsAutoRefresh = mSharedPreferences.getBoolean("PREF_AUTO_REFRESH",
- false);
- Log.d("test", "isAutoRefresh: " + mIsAutoRefresh);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
- String key) {
- Log.d("test", "key: " + key);
- //根据其值,可以做相应的处理
- //这个值改过以后,是会被存下来哦~~存在某个.xml文件夹中的
- mIsAutoRefresh = mSharedPreferences.getBoolean(key, false);
- Log.d("test", "isAutoRefresh: " + mIsAutoRefresh);
- }
- }
package com.example.preferencedemo;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
//当SharedPreferences发生变化的时候,可以监听其变化,并作出相应的处理
public class MainActivity extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
private SharedPreferences mSharedPreferences;
private boolean mIsAutoRefresh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.addPreferencesFromResource(R.xml.mypreference);
// 为PreferenceActivity中的选项记录的SharedPreferences值被存在app沙箱中,
// 这使得任何app组件都可以访问它(Activity/Service/BroadcastReceiver)
mSharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
// 需要注册哦
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
mIsAutoRefresh = mSharedPreferences.getBoolean("PREF_AUTO_REFRESH",
false);
Log.d("test", "isAutoRefresh: " + mIsAutoRefresh);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Log.d("test", "key: " + key);
//根据其值,可以做相应的处理
//这个值改过以后,是会被存下来哦~~存在某个.xml文件夹中的
mIsAutoRefresh = mSharedPreferences.getBoolean(key, false);
Log.d("test", "isAutoRefresh: " + mIsAutoRefresh);
}
}
PS: