没有互联网连接时如何存储列表项(数据来自服务器)

时间:2018-07-23 19:29:10

标签: java android json listview android-volley

关于
我有一个listview包含4个项目,其中3个是文本,第四个是图像 所有数据都在json中的服务器上 该代码可以正常工作,但是当Internet断开时,所有项目和列表都不会出现,如何使列表在有和没有Internet连接的情况下都能正常工作 因为我每天都将新项目添加到数据库中 这是我的代码

    requestQueue = Volley.newRequestQueue(this);

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                     try {
                        JSONArray jsonArray = response.getJSONArray("allstudents");
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject respons = jsonArray.getJSONObject(i);
                            String id = respons.getString("id");
                            String name = respons.getString("name");
                            String info = respons.getString("info");
                            String img = respons.getString("img");
                            link = respons.getString("link");
                            voicelink = respons.getString("voicelink");
                            listitmes.add(new listitme(id, name, info, img, link, voicelink));
                            allitems();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }
            , new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("VOLLEY", "ERROR");
        }
    }

    );
    requestQueue.add(jsonObjectRequest);

}


public void allitems() {
    listAdapter lsadapter = new listAdapter(listitmes);
    listView.setAdapter(lsadapter);

}

任何解决方案,我搜索了很多,但没有任何答案 而且我在StackOverflow.Com上找不到像这里的任何东西

2 个答案:

答案 0 :(得分:0)

看看https://developer.android.com/reference/android/content/SharedPreferences

使用Shared SharedPreferences,您可以保存列表并在没有wifi时调用它!

答案 1 :(得分:0)

您可以做的是:

    从您接收到数据后,
  • 将下载的数据保存到文件( image )/属性( text )中互联网。 ()
  • Display 在您的活动中出现一条消息,说明已提取数据(例如,上次同步:时间戳)。
  • 如果您无法连接到Internet以获取新数据,请从文件/属性中加载数据。
  • 如果您无法连接到Internet并且没有任何已保存的数据,请显示一条消息(例如,无法连接到Internet-可能会被涂上颜色以突出显示这是错误)。

我的2美分...