Android - 首选项
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="using_categories_in_root_screen"
android:summary="Using Preference Categories"
android:title="Categories">
<PreferenceCategory
android:key="basic"
android:title="Basic1">
<CheckBoxPreference
android:key="show_airline_column_pref"
android:summary="Show Airline column"
android:title="Airline" />
<CheckBoxPreference
android:key="show_departure_column_pref"
android:summary="Show Departure column"
android:title="Departure" />
<CheckBoxPreference
android:key="show_arrival_column_pref"
android:summary="Show Arrival column"
android:title="Arrival" />
<CheckBoxPreference
android:key="show_travel_column_pref"
android:summary="Show Total Travel Time column"
android:title="Total Travel Time" />
</PreferenceCategory>
<PreferenceCategory
android:key="basic"
android:title="Basic2">
<ListPreference
android:defaultValue="@string/flight_sort_option_default_value"
android:dialogTitle="@string/dialogTitle"
android:entries="@array/flight_sort_options"
android:entryValues="@array/flight_sort_options_values"
android:key="flight_sort_option_pref"
android:summary="@string/listSummary"
android:title="@string/listTitle">
</ListPreference>
</PreferenceCategory>
<PreferenceCategory
android:key="basic"
android:title="Basic3">
<EditTextPreference
android:dialogTitle="Package Name"
android:key="package_name_pref"
android:summary="Set the package name for ..."
android:title="Set package name" />
<Preference android:key="clear_history_pref"
android:title="Clear History" />
</PreferenceCategory>
</PreferenceScreen>
public class SettingsPreferenceActivity extends PreferenceActivity {
private static final String TAG = "PreferenceActivity";
private ListPreference mListPref;
private EditTextPreference mEditTextPref;
private Preference mClearHistoryPref;
private Resources mResources;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
mResources = getResources();
mListPref = (ListPreference) findPreference("flight_sort_option_pref");
mEditTextPref = (EditTextPreference) findPreference("package_name_pref");
mClearHistoryPref = (Preference) findPreference("clear_history_pref");
mListPref.setSummary(mListPref.getEntry());
mEditTextPref.setSummary(mEditTextPref.getText());
initEvent(); //首选项监听事件
}
private void initEvent() {
mListPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
mListPref.setSummary(mResources.getStringArray(R.array.flight_sort_options)[Integer.parseInt(newValue.toString())]);
return true;
}
});
mEditTextPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
preference.setSummary(newValue.toString());
return true;
}
});
mClearHistoryPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
new AlertDialog.Builder(SettingsPreferenceActivity.this)
.setTitle("清除历史记录")
.setMessage("是否真的清除历史记录?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(SettingsPreferenceActivity.this, "清除成功", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create().show();
return true;
}
});
}
}
浙公网安备 33010602011771号