Android notifyDataSetChanged()在删除getItemView()中的项目后刷新ListView
我有一个扩展Android notifyDataSetChanged()在删除getItemView()中的项目后刷新ListView,android,listview,parse-platform,adapter,notifydatasetchanged,Android,Listview,Parse Platform,Adapter,Notifydatasetchanged,我有一个扩展ParseQueryAdapter的适配器。我想删除函数getItemView()中的一个项,因此调用: public View getItemView(final AlertObject alertObject, View view, final ViewGroup parent) { ... // Some conditions alertObject.deleteInBackground(new DeleteCallback() { @Override
ParseQueryAdapter
的适配器。我想删除函数getItemView()
中的一个项,因此调用:
public View getItemView(final AlertObject alertObject, View view, final ViewGroup parent) {
... // Some conditions
alertObject.deleteInBackground(new DeleteCallback() {
@Override
public void done(ParseException e) {
if(e == null) {
notifyDataSetChanged();
} else {
LogUtils.e(LogUtils.getTag(), e.getMessage());
}
}
});
...
}
但是,删除项目后,列表视图
不会刷新。我做错了什么
编辑
适配器和ListView之间的映射如下所示:
ParseQueryAdapter.QueryFactory<AlertObject> factory =
new ParseQueryAdapter.QueryFactory<AlertObject>() {
public ParseQuery<AlertObject> create() {
ParseQuery<AlertObject> query = AlertObject.getQuery();
query.orderByDescending(AlertObject.TIMESTAMP_KEY);
query.fromLocalDatastore();
return query;
}
};
alertsListAdapter = new AlertListItemAdapter(activity, factory);
alertsListView = (ListView) rootView.findViewById(R.id.alerts_list_view);
alertsListView.setAdapter(alertsListAdapter);
您是如何在listview中存储项目的?共享其他信息也只是您的适配器是自定义的,用于此目的的数据集我已经编辑了我的问题,请查看更新,谢谢!)我认为这里的问题是您正在删除远程服务器上的对象,但实际上并没有将其从本地显示的列表中删除。这似乎也是一个执行此操作的奇怪地方-为什么在尝试显示行时要删除行?我认为您需要重新处理此问题,因为该方法只应返回views@AndrewBreen:因为我为ListView中的每个项目都有一个垃圾箱按钮(一个
ImageView
),并且我在适配器中构建了项目视图,所以当按下按钮时,必须删除该项目。然而,也许你是对的。。。该项将从远程服务器中删除,但不会从本地删除。我会查一查,然后告诉你。
((MainActivity)context).getFragmentManager().beginTransaction()
.detach(listAlertsFragment)
.attach(listAlertsFragment)
.commit();