我有这个应用程序
当用户在日历上的一天按时,会添加带有该日期标签的新片段。他将数据放在片段上,并以这样的线性布局进行显示。我可以使用contentProvider和contentResolve将片段保存在我的sqli数据库中,以便当用户再次登录时以线性布局将此数据保存吗?还是我必须尝试其他东西?
我尝试用Gson保存碎片。
1)我将片段从管理器获取到列表。 2)将gson列表作为json保存在字符串变量中 和 3)获取具有type-typeToken的片段
@Override
protected void onPause() {
super.onPause();
Log.d(TAG,"onPause");
SharedPreferences sharedPreferences=getSharedPreferences("FragmentsList",Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
manager=getFragmentManager();
fragmentList = manager.getFragments();
if (fragmentList!=null) {
Gson gson = new Gson();
String json = gson.toJson(fragmentList); // error here cant serialize context
editor.putString("ListFragment", json);
}
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getSharedPreferences("FragmentsList",Context.MODE_PRIVATE);
String jsonreader=sharedPreferences.getString("ListFragment",null);
Type type = new TypeToken<List<Fragment>>(){}.getType();
Gson gson = new Gson();
manager=getFragmentManager();
fragmentList=gson.fromJson(jsonreader,type);
if (fragmentList!=null) {
for (Fragment fragment : fragmentList) {
manager.putFragment(bundle, "BundleFragment", fragment);
}
}
}
使用此代码,当我尝试使用gson.tojson保存列表时出现错误,因为我认为片段具有上下文并且无法将格式转换为json