首先是一个数组列表然后我尝试将其更改为一个集合,因此我可以将它放在putStringSet中。但是是..它没有字符串数据类型
Set<RecordData> set = new HashSet<>(dataList);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = preferences.edit();
editor.putStringSet("recordlists", set);
RecordData是我创建的一个类。
我很糟糕。
答案 0 :(得分:0)
你可以使用GSON
库..
试试这个用于保存和加载共享首选项数据:
public static void saveSharedPreferencesLogList( Set<RecordData> record) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor prefsEditor = preferences.edit();
Gson gson = new Gson();
String json = gson.toJson(record);
prefsEditor.putString("myJson", json);
prefsEditor.commit();
}
public static Set<RecordData> loadSharedPreferencesLogList() {
Set<RecordData> record = new HashSet<>(dataList);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
Gson gson = new Gson();
String json = preferences.getString("myJson", "");
if (json.isEmpty()) {
record = new Set<RecordData>();
} else {
Type type = new TypeToken<Set<RecordData>>() {
}.getType();
record = gson.fromJson(json, type);
}
return record;
}
同样将其放在您的Gradle文件中:
compile 'com.google.code.gson:gson:2.6.2'