サイト移転のお知らせ:http://techbooster.org/に移転しました

データを簡単に保存する方法(Preference編)

7月 1, 2010   //   by kkato   //   アプリケーション  //  4 Comments

Androidのアプリケーションで、データを保存する方法を説明します。

保存する方法としては以下のものがあります。

  • ファイルとして保存
  • Preference
  • データベース(SQLite)

今回はPreferenceを取り上げてみようと思います。

SharedPreferences

SharedPreferencesとは、Androidで簡単にデータを保存/読込を行う仕組みです。
具体的にはキーと値をセットで保持し、XML形式としてshared_prefフォルダに保存されます。

保存できる値

  • int
  • float
  • long
  • boolean
  • String

保存、読み込みのためのメソッド

  • putInt(String key, int value)
  • putFloat(String key, float value)
  • putLong(String key, long value)
  • putBoolean(String key, boolean value)
  • putString(String key, String value)
  • getInt(String key, int defValue)
  • getFloat(String key, float defValue)
  • getLong(String key, long defValue)
  • getBoolean(String key, boolean defValue)
  • getString(String key, String defValue)

読み込みはSharedPreferencesのeditメソッドを使って、SharedPreferences.Editorクラスを取得してから行います。

保存はput〜〜メソッドを呼び出した後にcommitメソッドを呼び出す必要があります。

実際に使ってみる

PreferenceManagerのgetDefaultSharedPreferencesメソッドを使ってSharedPreferencesを取得します。

サンプルは下記の動きをします。

  • Saveボタンを押すとEditTextに入力されている文字列をキーをSaveStringとして保存
  • Loadボタンを押すとSaveStringというキーに対する値を取得してEditTextに設定
public class SampleActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button saveButton = (Button)findViewById(R.id.SaveButton);
        saveButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				saveButtonClick();
			}
        });

        Button loadButton = (Button)findViewById(R.id.LoadButton);
        loadButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				loadButtonClick();
			}
        });

    }

	private void saveButtonClick() {
		// 保存
		EditText editText = (EditText)findViewById(R.id.EditText01);
		SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
		sp.edit().putString("SaveString", editText.getText().toString()).commit();
	}

	private void loadButtonClick() {
		// 読み込み
		EditText editText = (EditText)findViewById(R.id.EditText01);
		SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
		editText.setText(sp.getString("SaveString", null), BufferType.NORMAL);
	}
}


関連する記事:

Sponsored Link

4 Comments

  • [...] Androidでデータを保存する方法として「Preference」の使い方を7/1の記事で紹介しました。 今回は組み込み機器向けのリレーショナルデータベース管理システムである「SQLite」を使ったデー [...]

  • [...] データを簡単に保存する方法(Preference編) [...]

  • [...] ールドに値を入れて管理するという方法を取ることがあるかと思います。この場合、Preferenceを使う方法でフィールドを1つずつ保存していくということも考えられますが、データのオブ [...]

  • [...] で設定情報を保存したい場合、Preferenceを使うと便利です。 以前TechBoosterでは「データを簡単に保存する方法」としてPreferenceを紹介しましたが、 Preferenceを使うことでデータの保存だけで [...]

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です