BaseAdapter 中如何通知数据库变化?
How to notify database change in BaseAdapter?
片段中有一个 ListView,我希望它在每次创建片段时显示从服务器(json 数组)下载的一些消息。下载后,我将消息放入 sqlite 数据库,然后使用 BaseAdapter.
在该 listView 中显示消息
但我必须知道 BaseAdapter 中的 getCount() 应该在 setAdapter() 之前 return;但是下载消息需要时间,直到下载消息我才知道计数。
所以我在片段中放了一个进度条,并尝试在消息下载并写入数据库后启动另一个片段和setAdapter()。问题是我如何知道消息何时下载并写入数据库?
使用 AsyncTask
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) {}
}
片段中有一个 ListView,我希望它在每次创建片段时显示从服务器(json 数组)下载的一些消息。下载后,我将消息放入 sqlite 数据库,然后使用 BaseAdapter.
在该 listView 中显示消息但我必须知道 BaseAdapter 中的 getCount() 应该在 setAdapter() 之前 return;但是下载消息需要时间,直到下载消息我才知道计数。
所以我在片段中放了一个进度条,并尝试在消息下载并写入数据库后启动另一个片段和setAdapter()。问题是我如何知道消息何时下载并写入数据库?
使用 AsyncTask
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) {}
}