【问题标题】: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) {}
}