- Android
- 2011-11-11 - 更新:2011-12-14
この記事は最終更新日から1年以上経過しています。
アプリケーションの設定を保存するため、Preferenceを使用して簡単に保存する
まず、XMLファイルを用意します。
XMLフォルダーを作成し、pref.xmlを作成します。
【pref.xml】
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:title="title"> <CheckBoxPreference android:key="checkbox_key" android:title="checkbox_title" android:summary="checkbox_summary" /> <EditTextPreference android:key="edittext_key" android:title="edittext_title" android:summary="edittext_summary" android:dialogTitle="edittext_dialogtitle" /> <ListPreference android:key="list_key" android:title="title" android:summary="summary" android:dialogTitle="dialogTitle" android:entries="@array/list_entries" android:entryValues="@array/list_entryvalues" android:defaultValue="1" /> </PreferenceCategory> </PreferenceScreen>
valuesフォルダーにarrays.xmlを作成し、リスト選択項目を設定します。
【arrays.xml】
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="list_entries"> <item>1</item> <item>2</item> <item>3</item> </string-array> <string-array name="list_entryvalues"> <item>1</item> <item>2</item> <item>3</item> </string-array> </resources>
設定画面用のアクティビティを用意します。
【Setting.java】
import android.content.Context; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.util.Log; public class Setting extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { Log.d("Setting", "onCreate"); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref); } public static String getSettingString(Context context) { //キーで設定を読み出し String list_key; list_key = PreferenceManager.getDefaultSharedPreferences(context).getString("list_key", "3"); return list_key; } public static boolean getSettingBoolean(Context context) { boolean bool; bool = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("checkbox_key", false); return bool; } public static void setSettingBoolean(Context context, boolean c) { SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); Editor e = pref.edit(); e.putBoolean("checkbox_key", c); e.commit(); } }
上記のアクティビティで宣言したメソッドで値をメインアクティビティから取得します。
Setting.getSettingString(this); Setting.getSettingBoolean(this);
2,779 views