1.使用PreferenceActivity之前首先要创建一个.xml文件来填充它的设置界面
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 设置系统铃声 -->
<RingtonePreference
android:key="ring_key"
android:ringtoneType="all"
android:showDefault="true"
android:showSilent="true"
android:summary="选择铃声(测试RingtonePreference)"
android:title="设置铃声" >
</RingtonePreference>
<PreferenceCategory android:title="个人信息设置zu" >
<!-- 通过输入框填写用户名 -->
<EditTextPreference
android:dialogIcon="@drawable/ic_launcher"
android:dialogTitle="您所使用的用户名为:"
android:key="name"
android:summary="填写您的用户名(测试EditTextPreference)"
android:title="填写用户名" />
<!-- 通过列表框选择性别 -->
<ListPreference
android:dialogTitle="ListPreference"
android:entries="@array/gender_name_list"
android:entryValues="@array/gender_value_list"
android:key="gender"
android:summary="选择您的性别(测试ListPreference)"
android:title="性别" />
</PreferenceCategory>
<PreferenceCategory android:title="系统功能设置组 " >
<CheckBoxPreference
android:defaultValue="true"
android:key="autoSave"
android:summaryOff="自动保存: 关闭"
android:summaryOn="自动保存: 开启"
android:title="自动保存进度" />
</PreferenceCategory>
</PreferenceScreen>
上面中出现的key就相当于布局文件中的id
public class PreferenceActivityTest extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
/*EditTextPreference etp = (EditTextPreference) findPreference("name");
etp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference arg0, Object arg1) {
// TODO Auto-generated method stub
Log.i("LogTest", arg1.toString());
return true;
}
});*/
}
}
3.程序运行界面
4.被设置的数据可以在其他地方访问
如:
String stringValue = PreferenceManager.getDefaultSharedPreferences(this)
.getString("name", "");
就可以获取当前设置的姓名(”name“是 key);
<span style="white-space:pre"> </span>// EditTextPreference 中的值可以这样获取
/*String stringValue = PreferenceManager
.getDefaultSharedPreferences(this).getString("name", "");
Log.i("LogTest", stringValue);*/
// ListPreference 中的值可以这样获取
/*String stringValue = PreferenceManager
.getDefaultSharedPreferences(this).getString("gender", "");
Log.i("LogTest", stringValue);*/
// CheckBoxPreference 中的值可以这样获取
/*Boolean boolValue = PreferenceManager
.getDefaultSharedPreferences(this).getBoolean("autoSave",true);
Log.i("LogTest", boolValue+"");*/