アプリが終了してもデータを保持する仕組みをぱぱっと作りたい人用
※データベースみたいな大量データはSharedPreferencesではなく、SQLiteで作ってください。
以下のようなクラスを用意するとGet/Setでデータを呼び出し/登録できます。
GetterとSetterの例:
public class Common { /** * Login情報取得 * @param mContext Context * @return ログイン結果 */ public static int getLoginStatus(Context mContext) { int LoginStatus = mContext.getSharedPreferences("login", Context.MODE_PRIVATE).getInt("Status", 0); return LoginStatus; } /** * Login状態設定 * @param mContext Context * @param LoginStatus ログイン状態 */ public static void setLoginStatus(Context mContext,int LoginStatus) { SharedPreferences sp = mContext.getSharedPreferences("login", Context.MODE_PRIVATE); Editor editor = sp.edit(); editor.putInt("Status", LoginStatus); editor.commit(); } }
このように設定することで、以下のようにGet/Setできる。
ActivityのonCreateなどで処理します。
//Contextを呼び出す Context mContext = getApplicationContext(); //データを取り出す。 int data = Common.getLoginStatus(mContext); //データを登録 int LOGIN = 1; Common.setLoginStatus(mContext, LOGIN);
今回はintでのデータ管理を紹介しました。
変数の形式がStringやbooleanなら、intをStringやbooleanに書き換えれば、その形式のデータが保存できます。
これで、別Actibityに遷移したときにデータを持っていきたいとき、Intentにデータをつけて送ることをしなくても、一旦SharedPreferencesに保存して、遷移先のActivityで呼び出すということもできます。
どちらが良いかは場合によりけりですが…
という感じで良かったら使ってみてください。