-
Notifications
You must be signed in to change notification settings - Fork 4
Type serializers
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インターフェイスを使用することで、自身の好きな型を保存することも可能です。
SharedPreferencesがサポートしている型にSerializeできれば、どんな型でも保存することができます。
実装方法については、以下のコードを参考にしてください。
https://github.com/operando/Garum/tree/master/garum/src/main/java/com/os/operando/garum/serializers