【问题标题】:How to notify database change in BaseAdapter?如何在 BaseAdapter 中通知数据库更改?
【发布时间】:2016-03-22 07:06:28
【问题描述】:

片段中有一个 ListView,我希望它在每次创建片段时显示从服务器(json 数组)下载的一些消息。下载后,我将消息放入 sqlite 数据库,然后使用 BaseAdapter 在该列表视图中显示消息。

但我必须知道 BaseAdapter 中的 getCount() 应该在 setAdapter() 之前返回什么;但是下载消息需要时间,直到消息下载后我才知道计数。

所以我在片段中放了一个进度条,并在消息下载并写入数据库后尝试启动另一个片段和 setAdapter()。问题是我如何知道消息何时下载并写入数据库?

【问题讨论】:

    标签: android sqlite android-fragments android-sqlite


    【解决方案1】:

    使用异步任务

    class DownLoadMessage extends AsyncTask<String, Void, String> {
    
        @Override
        protected String doInBackground(String... params) {
    
            //here you download your message
    
            return "Executed";
        }
    
        @Override
        protected void onPostExecute(String result) {
    
           // and here you set your adapter
    
        }
    
        @Override
        protected void onPreExecute() {}
    
        @Override
        protected void onProgressUpdate(Void... values) {}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多