Android提供了一个XML驱动的框架,用于为应用程序创建系统样式的PreferenceScreen.
(3.0/API 11 以前)是这样使用的
看代码:
mypreference.xml
android:key="PREF_AUTO_REFRESH"
android:defaultValue="true"
android:summary="select to turn on automatic updating"
android:title="Auto Refresh" />
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);
}
}
PS:
源代码:
http://download.csdn.net/detail/null1989/6454243