Androidのデータ永続化手法として、SQLiteやSharedPreferencesとかありますよね。
自分は比較的簡単に使用することの出来るSharedPreferencesをよく使うんですが、少しでも簡単にコードをシンプルな状態で使えないかなと考え、ラッパークラスの様なものを作成してみました。
ここでは、簡単な使い方の説明と紹介を載せたいと思います。
まだまだAndroid開発経験が短いため、おかしな所や改善点がありましたらアドバイス等もらえるとうれしいです!…結構ToDoも残っているのですよね…(笑)
サンプル
テキストを保存するためのサンプルクラスはラッパークラスを継承しています。
データの呼び出し・保存処理をラッパークラスで実装しているので比較的シンプルに実装できるようになっております。
キーを登録して、_setや_getを呼び出し保存する仕組みです。
package com.dtdweb.sharedpreferences.sample;
import android.content.Context;
import com.dtdweb.lib.sharedpreferences.SharedPreferencesWrapper;
public class SharedSample extends SharedPreferencesWrapper {
private static final String TEXT_CONFIG_KEY_NAME = "text_config_name";
public SharedSample(Context context) {
super(context);
}
/**
* テキストの保存
*/
public void setText(String text) {
this._set(SharedSample.TEXT_CONFIG_KEY_NAME, text);
}
/**
* 保存されているテキストデータの取得
*/
public String getText() {
return this._get(SharedSample.TEXT_CONFIG_KEY_NAME);
}
/**
* 保存されているテキストデータを削除
*/
public void removeText() {
this._remove(SharedSample.TEXT_CONFIG_KEY_NAME);
}
}
Activity側からの呼び出し方
SharedSample sharedSample = new SharedSample(this);
// テキストの保存
sharedSample.setText("入力されたデータ");
// 保存されているデータの呼び出し
String dataString = sharedSample.getText();
これだけで、いちいちEditorのインスタンスを作成してput***やcommitを行わずに保存・呼び出しが出来るようにしてみました。
まとめ
そもそもこのクラスをつくろうと思ったきっかけですが、一番はやはり複数のActivityで呼び出す際にシンプルに呼び出して使えたらなと思ったのが始まりでした。
他にセキュリティ的に大丈夫なのかなと思い保存の際は暗号化して保存したりと、恐らくそこまではやらなくても良かったのかもしれないですね。
残っている課題点
現状のクラスですが、保存するデータの型がStringしか対応できておりません。
数値や配列データを保存したい場合、parseしたりjson形式にしたりとで、少々不便な点も残っております。この辺は今後改善していけたらと思います!