我有一个简单的应用程序,其中一个活动包含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应用程序,其中显示较旧的推文,并在应用程序重启时将新推文加载到较旧推文上方。
答案 0 :(得分:0)
我建议你阅读这篇文章:https://developer.android.com/guide/topics/data/data-storage.html
在您的情况下,我认为最简单的方法是在运行时将列表数据保存到某个缓存文件(简单文本文件会这样做),然后在活动的onCreate()
期间从中加载数据。这样,即使应用程序被终止,您也可以始终从缓存文件中加载数据。从文件加载列表数据后,您可以启动AsyncTask
,从Web加载数据,然后在onPostExecute()
重新加载列表。