Java 适配器的内容已更改,但ListView未收到通知。确保未修改适配器的内容
我有时会犯这个错误 适配器的内容已更改,但ListView未收到 通知。确保未修改适配器的内容 从后台线程 但我不明白,因为我运行到UI线程。如果你有一个想法,thksJava 适配器的内容已更改,但ListView未收到通知。确保未修改适配器的内容,java,android,listview,adapter,Java,Android,Listview,Adapter,我有时会犯这个错误 适配器的内容已更改,但ListView未收到 通知。确保未修改适配器的内容 从后台线程 但我不明白,因为我运行到UI线程。如果你有一个想法,thks class LoadingProducts extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); loading_in
class LoadingProducts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
loading_indicator.show();
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (isAdded()) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.setData(listProducts);
mAdapter.notifyDataSetChanged();
loading_indicator.hide();
}
});
}
}
@Override
protected Void doInBackground(Void... params) {
get_data();
return null;
}
}
为了使这个问题更清楚,请添加一个获得此错误的特定条件。例如,发生此错误的原因是什么?在发生此错误之前,您采取了哪些步骤?你的程序编译吗?这些东西将帮助其他人更准确地解决您的问题。数据来自sqlite数据库,我正在查询中搜索数据。你建议我加载所有数据,然后过滤?可以筛选大数据。是的,但我在搜索之前不会在listview中加载数据。这不是listview中的搜索,仅显示结果。否,如果用户搜索,则我的listview仅显示结果我使用BaseAdapter,因为我的光标已转换为对象,并且在此搜索之前已进行筛选。这是一个包含许多数据的复杂查询。
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mQueryStringSearch.length() > 2)
new LoadingProducts().execute();
}
}, 300);