SharedPreferencesとは何者かから説明します。

DBやファイル管理せずにアプリが消されるまで値を保持できる機能です。
さっそく嘘つきました。
実は端末のアプリ管理で「データ削除」を実行されても消えます。


とはいえ、ちょっとしたデータ管理には最適です。

とりあえず、ソースコードです。
public class MainActivity extends Activity
{

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_vh);
this.showMsg();
}

private void showMsg(){

SharedPreferences spf = getSharedPreferences("TEST_SPF", MODE_PRIVATE);
SharedPreferences.Editor editor = null;
String msg = spf.getString("msg", null);

if(null == msg){
editor = spf.edit();
editor.putString("msg", "SPF_MESSAGE");
editor.commit();
msg = "msg is null";
}

Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
}


該当メソッドは「showMsg」です。

この作りだとデータが保存されていれば、保存されているデータを表示
データが無ければ新規保存します。

細かい解説です。

SharedPreferences spf = getSharedPreferences("TEST_SPF", MODE_PRIVATE);
インスタンスの生成(取得)をしています。
第一引数がSharedPreferencesの名前(DBのTBL名のイメージ)
第二引数は以下の通り
MODE_PRIVATE 他のアプリからはアクセス不可
MODE_WORLD_READABLE 他のアプリからの読み込み可能
MODE_WORLD_WRITEABLE 他のアプリからの書き込み可能

spf.getString("msg", null);
保存している値を取得します。
第一引数は保存した値のキー(DBではカラム名)
第二引数は取得出来なかった時に代入する値
今回はnullになります。

編集する時は以下
SharedPreferences.Editor editor = spf.edit();
*SharedPreferencesのインスタンスがspfの変数名でセットされている場合

値の追加は以下
editor.putString("msg", "SPF_MESSAGE");
put○○(キー, 値);です。
一通り値をputしたら以下のcommit()を忘れずに呼びます。
editor.commit();

最後に動作イメージです。

初回起動/データ削除後初回起動



2回目以降起動