0

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

主类

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 应用程序,其中显示较旧的推文,并在应用程序重新启动时将新推文加载到较旧的推文之上。

4

1 回答 1

0

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

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

于 2013-06-16T15:00:14.180 回答