0

SQLiteDatabaseListView异步方式加载从 中查询的内容。我使用一个AsyncTask,它基本上看起来像这样:

private final class QueryTask extends AsyncTask<Boolean, Void, Boolean> {

    @Override
    protected Boolean doInBackground(Boolean... params) {
        doQuery();

        if (querySuccessfull) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    protected void onPostExecute(Boolean boo) {
        if (boo) {
            setAdapterToListView();
        } else {
            loadEmptyView();
        }
    }
}

不过,这没什么大不了的。但是,有一个小问题,内容没有立即加载,这会导致我认为非常难看的闪烁。我不知道如何“修复”,希望你能帮助我。非常感谢!

4

1 回答 1

2

我希望目前您在适配器中添加所有项目,然后在最后执行 notifydatasetchanged()。因此,在填充整个适配器后 UI 会更新。

仅在您的 doQuery() 函数中,您应该在适配器中添加项目,然后为前 10 个项目(可见项目)每个项目调用 notifydatasetchanged()(在可见项目之后,请在添加整个列表后调用 notifydatasetchanged())。

这将为 UI 提供您想要的流畅感觉。希望能帮助到你。

于 2013-01-28T22:16:23.127 回答