Categories
SugiBlog ホームページ制作・システム開発

設定を保存する [Preference]

アプリケーションの設定を保存するため、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);
1,607 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*