android:データの保存&読み込み
2015/11/11 01:38:52
SharedPreferencesを使う
初期動作、保存ファイル名を指定してプライベートモードでオープン。他のプロセスからもアクセスする場合は他のモードを選ぶ必要がある。xmlに保存されるらしいので'ファイル名'で間違ってないと思う。
データキーとデフォルト値を指定して数値データを読み込み。指定キーのデータが存在しなければデフォルト値が返る。
データ書き込みのためエディタオブジェクトを使う。
読み込みと同じくデータキーを指定してデータ書き込み。上の例では実行するたび数値が1増える。
apply()しないと保存が反映されない。commit()も同様の効果だがapply()は非同期、commit()は同期で動作するらしい。apply()のほうがちょっと早い、ということになる。
appendix:
現在日時管理にはCalendarクラスを使うのが主流であるが、これをそのまま保存すると結構なデータ量となるので、getTime()してDate(long型)のみ保存・読み込みするのが賢いやり方だと思う。しかしCalendarをそのまま保存したら実際どーなるかしらんし他の人がやるぶんにはどっちでもいいです。
SharedPreferences pr = getSharedPreferences("filename", MODE_PRIVATE);では上から見ていこう。
int nData = pr.getInt("data_key", 0);
SharedPreferences.Editor ed = pr.edit();
ed.putInt("data_key", nData + 1);
ed.apply();
初期動作、保存ファイル名を指定してプライベートモードでオープン。他のプロセスからもアクセスする場合は他のモードを選ぶ必要がある。xmlに保存されるらしいので'ファイル名'で間違ってないと思う。
データキーとデフォルト値を指定して数値データを読み込み。指定キーのデータが存在しなければデフォルト値が返る。
データ書き込みのためエディタオブジェクトを使う。
読み込みと同じくデータキーを指定してデータ書き込み。上の例では実行するたび数値が1増える。
apply()しないと保存が反映されない。commit()も同様の効果だがapply()は非同期、commit()は同期で動作するらしい。apply()のほうがちょっと早い、ということになる。
appendix:
現在日時管理にはCalendarクラスを使うのが主流であるが、これをそのまま保存すると結構なデータ量となるので、getTime()してDate(long型)のみ保存・読み込みするのが賢いやり方だと思う。しかしCalendarをそのまま保存したら実際どーなるかしらんし他の人がやるぶんにはどっちでもいいです。
PR
この記事へのトラックバック
この記事のトラックバックURL