AndroidのListPreferenceの詳細な説明

Android でプリファレンスは、アプリケーションの設定を格納・管理するための一般的な方法です。 ListPreference は、 Android のプリファレンスフレームワーク内の特殊な型で、ユーザーは固定されたオプションのリストから値を選択できます。

リストプリファレンスは、ユーザーがプリファレンスをクリックすると選択可能な選択肢が記載されたダイアログが表示されます。ユーザーはリストから選択肢を1つ選択できます。すると、その選択肢の値がプリファレンスに保存され表示されます。

ListPreference の使用手順

  1. res/xmlフォルダにpreference.xmlを作成し、その中にListPreference要素を定義する。ListPreferenceを構成するために使用できる属性は次のとおりです。
  1. android:key:設定値のキーを指定し、コード内で設定値の値にアクセスして修正します。
  2. android:title :設定項目を表示する設定リストに表示する設定項目のタイトルを指定します。
  3. アンドロイド: エントリ: 選択可能なオプションの表示テキストを含む配列リソースを指定します。
  4. android:entryValues:選択可能なオプションの値を含む配列リソースを指定します。
  5. Android: defaultValue: 指定プリファレンスのデフォルト値
  1. Preference.xmlファイルをロードするためにSettingsActivityやPreferenceActivity、PreferenceFragment のどちらかを継承したクラスでは、addPreferencesFromResource()メソッドを使用する。
  2. アプリケーションの ListPreference の値の取得・変更には SharedPreferences クラスを利用します。まずは PreferenceManager クラスで SharedPreferences オブジェクトを取得し、getString() メソッドで ListPreference の値を取得したり、putString() メソッドで ListPreference の値を変更します。

リストプレファレンスを使用するサンプルコードを次に示します。

preference.xmlファイル

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:key="list_preference"
android:title="List Preference"
android:entries="@array/list_options"
android:entryValues="@array/list_values"
android:defaultValue="option1" />
</PreferenceScreen>

arrays.xml ファイル:

<resources>
<string-array name="list_options">
<item>Option 1</item>
<item>Option 2</item>
<item>Option 3</item>
</string-array>
<string-array name="list_values">
<item>option1</item>
<item>option2</item>
<item>option3</item>
</string-array>
</resources>

SettingsActivity.java ファイル:

public class SettingsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String listPreferenceValue = sharedPreferences.getString("list_preference", "option1");
Log.d("ListPreference", "Selected value: " + listPreferenceValue);
}
}

上記の例では、優先順位リストには3つの選択肢(Option 1、Option 2、Option 3)があり、値はそれぞれoption1、option2、option3です。SettingsActivityのonCreate()メソッドでは、PreferenceManagerクラスを使用してSharedPreferencesオブジェクトを取得し、getString()メソッドを使用してListPreferenceの値を取得します。ユーザーがListPreferenceの値を一度も選択していない場合、デフォルト値のoption1が返されます。

ListPreferenceはAndroidのPreferencesフレームワークにおける特殊なタイプのプリファレンスであり、ユーザーが選択可能な固定オプションのリストを提供します。ListPreference要素を定義し、コードで値を取得したり変更することで、アプリケーションの設定の管理を簡単に実装できます。

bannerAds