Android開発のお話です。ちょっとしたデータの保存を行う時はSharedPreferencesを使うと早く簡単にデータの保持が可能です。ちゃんとグローバルな変数を使って、親クラスで管理するのが一番綺麗ですが一時的なデータのやり取りではSharedPreferencesを使うとシンプルです。
Contents
データの書き込み
1 2 3 4 5 6 7 8 9 |
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = sharedPreferences.edit(); // データのセット editor.putBoolean("isPost", true); editor.putString("postId", "12345"); // 保存 editor.apply(); |
データの取り出し
1 2 3 4 5 |
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); // データの取り出し。第二引数はデフォルトの値です。 boolean isPost = sharedPreferences.getBoolean("isPost", false); String postId = sharedPreferences.getString("postId", ""); |
データの削除
1 2 3 |
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.clear().commit(); |
補足
1 2 3 4 5 6 7 8 9 10 11 |
// SharedPreferencesは紹介した方法以外にも、 // 下記のように初期化することができます // なお、デフォルトではContext.MODE_PRIVATEモードのようです。 // 1 SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(Context); // 2 // 第一引数は保存する名前、第二引数はモード // Context.MODE_PRIVATE : そのアプリ内でのみ使用可能 // Context.MODE_MULTI_PROCESS:複数のプロセス内でデータを使用可能 SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("usertmp", Context.MODE_PRIVATE); |
その他情報は公式ドキュメントが詳しいです。
https://developer.android.com/training/basics/data-storage/shared-preferences.html
なお、Swiftで同様のことをやりたい場合は下記エントリーを参照してください。
[Swift] NSUserDefaultsを使って一時的なデータの保存を行う。画面を跨いだデータの受け渡しに便利です。
1件のコメント