【问题标题】:Save ListView data and get it back on application start保存 ListView 数据并在应用程序启动时将其取回
【发布时间】:2013-06-16 14:13:09
【问题描述】:

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

主类

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

【问题讨论】:

  • 这可能取决于您填充 ListView 的数据的性质。如果要加载的内容是高度易失性的,最好加载它onCreate(),否则如果内容相对非易失性并且每次都附加新数据,那么它倾向于使用@Gleb 指定的基于文件的缓存。

标签: java android xml caching android-listview


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 2021-04-03
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2022-11-29
    相关资源
    最近更新 更多