如何显示从在线http服务器

时间:2016-08-25 09:51:37

标签: android listview

您好我从在线服务器获取ListView的数据,如果用户在线,则显示正常。

但我想在离线模式下显示ListView数据,这意味着它必须显示用户在线时检索到的数据。

示例:如果从在线服务器检索到10条记录,并在用户在线时显示在ListView中。 现在,如果用户离线,则ListView应显示先前检索到的10条记录,直到用户上线为止。

最好的例子是Facebook,它也显示离线模式的帖子。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我想你应该参考这些步骤:

当用户访问此Activity(其中包含listView)时

  1. 从您的数据库中获取所有记录并添加到您的listView中,向用户显示这些本地记录(当用户在线时加载,或者用户第一次没有记录)。

  2. 创建一个AsyncTask来调用您的API并从服务器获取记录,并将这些记录添加到您的数据库

  3. listView reloadData(再次从数据库中获取记录),以便在AsyncTask onPostExecute函数中向用户显示新记录

  4. 我希望这些可以帮助你,
    最好的问候

答案 1 :(得分:1)

我的建议是在共享首选项中保存数据/ json,当你在线从服务器获取json时和离线时从共享首选项中获取json,这样你就不必更改其他代码了。

if(online)
{
 // call http server and get json string
 // save this json string in shared preference
}
else{
//
// check if shared pre contains data ( not null) and get data from local shared pref
}

//其他代码与在线

相同