您好我从在线服务器获取ListView
的数据,如果用户在线,则显示正常。
但我想在离线模式下显示ListView
数据,这意味着它必须显示用户在线时检索到的数据。
示例:如果从在线服务器检索到10条记录,并在用户在线时显示在ListView
中。
现在,如果用户离线,则ListView
应显示先前检索到的10条记录,直到用户上线为止。
最好的例子是Facebook,它也显示离线模式的帖子。
提前致谢。
答案 0 :(得分:1)
我想你应该参考这些步骤:
当用户访问此Activity(其中包含listView)时
从您的数据库中获取所有记录并添加到您的listView中,向用户显示这些本地记录(当用户在线时加载,或者用户第一次没有记录)。
创建一个AsyncTask来调用您的API并从服务器获取记录,并将这些记录添加到您的数据库
listView reloadData(再次从数据库中获取记录),以便在AsyncTask onPostExecute函数中向用户显示新记录
我希望这些可以帮助你,
最好的问候
答案 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
}
//其他代码与在线
相同