Androidプログラマへの道 〜 Moonlight 明日香 〜 - プリファレンスから読み出す
プリファレンスからデータを読み出すには, SharedPreferencesクラスを利用する.
プリファレンスに書き込む」参照

データ読み出し

  • MainActivity.java
    • getSharedPreferencesメソッドで, ファイル名およびアクセスモードを指定して, SharedPreferencesオブジェクトを取得する.
アクセスモード説明
MODE_PRIVATE他のアプリケーションからのアクセス不可
MODE_WORLD_READABLE他のアプリケーションからの読み出し可
MODE_WORLD_WRITABLE他のアプリケーションからの書き込み可
    • SharedPreferences#getXXXメソッドで, キーとデフォルト値と指定してデータを読み出す.
メソッド読み出す値
getBooleanboolean
getFloatfloat
getIntint
getLonglong
getStringString
package com.moonlight_aska.android.work.preference01;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements View.OnClickListener {
  private static final String FILENAME = "sample";
  private Button btnRead = null;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnRead = (Button)findViewById(R.id.btn_read);
    btnRead.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    // データ読み込み
    SharedPreferences pref = getSharedPreferences(FILENAME, Context.MODE_PRIVATE);
    if (pref != null) {
      // ブール値
      TextView dat1 = (TextView)findViewById(R.id.r_bool_id);
      Boolean bVal = pref.getBoolean("DATA1", false);
      if (bVal == true) {
        dat1.setText("true");
      }
      else {
        dat1.setText("false");
      }
      // 数字
      TextView dat2 = (TextView)findViewById(R.id.r_int_id);
      int iVal = pref.getInt("DATA2", -1);
      dat2.setText(String.format("%d", iVal));
      // 文字列
      TextView dat3 = (TextView)findViewById(R.id.r_string_id);
      String str = pref.getString("DATA3", "NONE");
      dat3.setText(str);
    }
  }
}