【问题标题】:Problems in storing the listview data存储列表视图数据的问题
【发布时间】:2013-10-17 00:45:12
【问题描述】:

我想在我的应用程序中实现类似 twitter 的功能,因为当您第一次登录时,您从服务器获取数据并将其显示在列表视图中,但如果您再次打开应用程序而不注销,我不想要该应用程序再次请求服务器以获取相同的数据,所以我的问题是在哪里存储先前获取的数据,以便应用程序不会再次请求服务器并获取新数据,我已经实现了可刷新的列表视图,因此用户将通过以下方式获取新数据刷新列表。

还有一件事是刷新后我想将新数据存储到保存以前数据的同一位置,并且我只想存储 20 个项目以防止内存溢出。请帮助某人。

我有一个 arraylist ArrayList> 从服务器获取数据时获取我存储数据的位置。

【问题讨论】:

  • 当用户关闭应用程序时将您的项目保存在文件中。或者也许将服务器的回复保存到一个字符串(文件或共享首选项)中并在创建时加载它们并重新解析它们。
  • 好的,我会尝试将回复保存为字符串并重新解析它
  • 我正在这样做 String Store_json_in_sharedpreferences=new Gson().toJson(fetch); e.putString("ONGOING_DATA", Store_json_in_sharedpreferences); e.commit();但是当我再次请求服务器时,它不能用新数据覆盖这个字符串吗?我想同时存储以前和较新的所有数据

标签: android listview twitter hashmap


【解决方案1】:

服务器必须以 JSON 或 XML 格式返回信息,只需将其放入共享首选项中,稍后根据一些内部标志检索/显示。

例如,以下是在共享首选项中存储内容的示例代码:

private void writeStrToPreferences(String strKey, String str){
        if(strKey == null) return;
        if(str == null) return;
        if(str.length() <= 0) return;

        SharedPreferences.Editor ed = getSharedPreferences(strKey, 0).edit();
        ed.putString(strKey, str);
        ed.commit();
    }

回读也会类似且简单

private String readStrFromPreferences(String strKey){
        if(strKey == null)return "NA";
        if(strKey.length() <= 0) return "NA";
        return getSharedPreferences(strKey, 0).getString(strKey, "NA");
    }

有关更多信息,请在此处查看文档: http://developer.android.com/reference/android/content/SharedPreferences.html

【讨论】:

  • 感谢回复,但我将所有 json 数据放入 hashmap 的数组列表中,那么如何将这个数组列表存储在 sharedpreferences 中?
  • 将其作为字符串存储在共享首选项中,然后再从中制作哈希映射...在从服务器获得响应后,将其放入共享首选项中...简单...
猜你喜欢
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多