Java ListPreference クラスの使い方例
ListPreferenceは、ドロップダウンリスト付きの設定項目を作成するためにAndroidプラットフォームで使用されるクラスです。
リストプリファレンスクラスを使用する一例を以下に示します。
まず、res/xmlフォルダ内にpreferences.xmlという名前のxmlファイルを作成し、以下の内容を記述する。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:key="theme"
android:title="选择主题"
android:summary="选择应用的主题"
android:entries="@array/theme_options"
android:entryValues="@array/theme_values"
android:defaultValue="@string/default_theme" />
</PreferenceScreen>
上記のコードでは、ListPreferenceが作成されており、いくつかのプロパティが設定されています。
- android:key:Preferenceを識別するためのキーを設定します。
- android:title:設定画面のタイトルを設定します。
- android:summary:Preference の要約を設定します。
- android:entries:スピナーの選択肢を、文字列アレイリソースを@arrayで参照して設定
- android:entryValues:ドロップダウンリストの選択肢に対応する値を設定し、@arrayを使用して文字列配列リソースを参照します。
- android:defaultValue:プリファレンスのデフォルト値を設定します。@stringを使用して文字列リソースを参照します。
続いてres/valuesフォルダにarrays.xmlという名前のXMLファイルを作成し、その中に以下の内容を記述しています。
<resources>
<string-array name="theme_options">
<item>浅色主题</item>
<item>深色主题</item>
</string-array>
<string-array name="theme_values">
<item>light</item>
<item>dark</item>
</string-array>
<string name="default_theme">light</string>
</resources>
上記コードでは、2つの文字列配列リソース「theme_options」と「theme_values」が作成され、それぞれドロップダウンリストのオプションの内容とオプションに対応する値に対応します。同時に、ListPreferenceの初期値を設定するための文字列リソース「default_theme」が作成されます
最後に、SettingsActivity(または他のアクティビティ)で、preferences.xmlファイルを読み込み、ユーザーの設定の選択に対応します。
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
ListPreference themePreference = (ListPreference) findPreference("theme");
themePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// 处理用户的设置选择
String theme = (String) newValue;
// 更新应用的主题
updateTheme(theme);
return true;
}
});
}
private void updateTheme(String theme) {
// 根据主题设置应用的样式
// ...
}
}
上記のコードでは、まずaddPreferencesFromResourceメソッドを呼び出してpreferences.xmlファイルを読み込みます。その後、ListPreferenceインスタンスを取得し、OnPreferenceChangeListenerを設定します。ユーザーが新しいテーマを選択すると、onPreferenceChangeメソッドが呼び出され、そこでユーザーの選択した設定(たとえば、アプリのテーマを更新する)を処理できます。
リストプリファレンスは、プルダウンリスト付きの設定アイテムを作成し、ユーザーによる設定選択を処理するためのAndroid固有のビュークラスです。