如何保存片段数据以显示下次登录

时间:2019-08-09 10:02:08

标签: android android-studio android-fragments android-sqlite

我有这个应用程序

Image 1

当用户在日历上的一天按时,会添加带有该日期标签的新片段。他将数据放在片段上,并以image 1这样的线性布局进行显示。我可以使用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

0 个答案:

没有答案