保存ListView数据并在应用程序启动时将其恢复

时间:2013-06-16 14:13:10

标签: java android xml caching android-listview

我有一个简单的应用程序,其中一个活动包含listview,其中数据使用自定义适配器加载,一些json内容在asynctask中获取,下面是缩小代码

Main.class

setContentView(R.layout.main);
final ListView listview = (ListView) findViewById(R.id.listView1);
class load_data extends AsyncTask<Void, Void, Void>{

 @Override
 protected Void doInBackground(Void... arg0) {
   // parse some JSON data and store it in " String[] var,var2,var3 " variable.....
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
final Listadapter adapter = new    
Listadapter(Main.this,var1,var2,var3);
listview.setAdapter(adapter);
}
//rest of the code

Listadapter.class

   @Override
    public View getView(int position, View convertView, ViewGroup parent) {

         // put values into textviews of the listview row
         return convertView;
   }

上面的listView实现工作正常,但每次启动应用程序时都会加载listview如何更改代码,以便listview向我显示旧的保留数据,然后加载新数据并刷新listview。

这个概念类似于android twitter应用程序,其中显示较旧的推文,并在应用程序重启时将新推文加载到较旧推文上方。

1 个答案:

答案 0 :(得分:0)

我建议你阅读这篇文章:https://developer.android.com/guide/topics/data/data-storage.html

在您的情况下,我认为最简单的方法是在运行时将列表数据保存到某个缓存文件(简单文本文件会这样做),然后在活动的onCreate()期间从中加载数据。这样,即使应用程序被终止,您也可以始终从缓存文件中加载数据。从文件加载列表数据后,您可以启动AsyncTask,从Web加载数据,然后在onPostExecute()重新加载列表。