Web開発部の小川です。初投稿です。
広く浅くをモットーにいろんなジャンルの話をしていきたいと思います。
今回はandroid開発でのローカル保存についてです。
androidの開発をしているとアプリケーションを終了しても保持してもらいたい情報があったりします。
ローカルで情報を保存する方法にはファイルで保存する方法とアプリケーションのデータ保存領域を使って保存する方法があります。
ちょっとした情報であるならアプリーケーション保存領域を使うのが簡単です。
今回は、アプリケーション領域を使う保存方法について説明します。
使うクラスは「SharedPreferences」と「Editor」です。
import android.content.SharedPreferences; import android.content.SharedPreferences.Editor import android.content.Context;
2つのクラスをインポートします。
次に、実際の情報保存方法について説明します。
SharedPreferences common = getSharedPreferences(COMMON_KEY,MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE); Editor editor = common.edit(); editor.putString(NAME, name); editor.putString(PASSWORD,password); editor.commit();
1行目のgetSharedPreferencesはContextクラスに抽象メソッドとして登録されています。第一引数には共通キーを指定します。
例えば、COMMON_KEY="hoge"とします。そうすると、別ActivityのgetSharedPreferencesの第一引数で"hoge"を指定した場合、同じプリファレンスを得ることができます。
3行目、4行目にあるputStringは文字列を保存するときに使用し、NAMEとPASSWORDは保存した情報を得るためのキーとなっています。
putString以外にも以下のようなメソッドがあります。
- getBoolean(String key, boolean defValue)
- getFloat(String key, float defValue)
- getInt(String key, int defValue)
- getLong(String key, long defValue)
5行目のcommitは忘れないように。putしただけでは保存されません。
次に情報の取り出し方です。
SharedPreferences common = getSharedPreferences(COMMON_KEY,MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE); String name = common.getString(NAME,""); String password = common.getString(PASSWORD,"");
getStringの第2引数はキーに対して値がないときのデフォルト値となります。