Skip to content
Shinobu Okano edited this page Sep 11, 2016 · 3 revisions

通常のSharedPreferencesではサポートされていない型を保存できるような仕組みを提供しています。

現在、サポートしている型は表のとおりです。

Class Deserialize Serialize
DateSerializer java.util.Date Long
CalendarSerializer Calendar Long
FileSerializer File String
UriSerializer Uri String
JSONObjectSerializer JSONObject String
JSONArraySerializer JSONArrayObject String
DoubleSerializer Double Long

Modelの作成時に、Deserializeの型のフィールドを定義することで使用することができます。

@Pref(name = "user_status")
public class UserStatus extends PrefModel {

    @PrefKey("last_used")
    public Date lastUsed;

    @PrefKey
    public Calendar birthday;

    @PrefKey("tmp_file")
    public File tmpFile;

    @PrefKey("uri")
    public Uri id_uri;
}

UserStatus userStatus = new UserStatus();
userStatus.lastUsed = new Date();
userStatus.birthday = Calendar.getInstance();
userStatus.tmpFile = new File("tmp.txt");
userStatus.id_uri = Uri.parse("content://com.os.operando.sample/users/1");
userStatus.save();

TypeSerializer Interface

TypeSerializerインターフェイスを使用することで、自身の好きな型を保存することも可能です。

SharedPreferencesがサポートしている型にSerializeできれば、どんな型でも保存することができます。

実装方法については、以下のコードを参考にしてください。

https://github.com/operando/Garum/tree/master/garum/src/main/java/com/os/operando/garum/serializers

Clone this wiki locally