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