preference.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
>
<Preference android:title="基本信息"
android:layout="@layout/text_view"></Preference> <!--自己定义layout-->
<CheckBoxPreference android:key="checkbox"
android:title="性别"
android:summary="男 ,女"/>
<RingtonePreference android:key="ringtone"
android:title="Ringtone Preference"
android:showDefault="true"
android:showSilent="true"
android:summary="Pick a tone, any tone"/>
<ListPreference android:summary="select a list"
android:title="Type"
android:entries="@array/my_array" <!--string-array-->
android:entryValues="@array/my_array"
android:key="list"/>
<EditTextPreference android:key="edit"
android:dialogTitle="nihao"
android:title="姓名"
/>
</PreferenceScreen>
**Activity.java
package com.lin.share;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.view.View;
public class TestPreferenctScreenActivity extends PreferenceActivity {
/** Called when the activity is first created. */
ListPreference list;
SharedPreferences prefs;
EditTextPreference editTextPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
prefs=PreferenceManager.getDefaultSharedPreferences(this);
list=(ListPreference)findPreference("list");
editTextPreference=(EditTextPreference)findPreference("edit");
editTextPreference.setSummary(prefs.getString("edit","default"));
editTextPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
editTextPreference.setSummary(newValue.toString());
editTextPreference.setDefaultValue(newValue);
editTextPreference.setText(newValue.toString());
return false;
}
});
list.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
System.out.println("change"+newValue);
list.setSummary(newValue.toString());
list.setValue(newValue.toString());
return false;
}
});
}
}