Android ParseQueryAdapter notifyDataSetChanged不起作用

时间:2014-06-05 06:18:26

标签: android android-listview parse-platform android-adapter notifydatasetchanged

使用最新的Parse库v1.5.1

感谢现在我可以做的更新:

ParseQueryAdapter<ParseObject> mAdapter = new ParseQueryAdapter<ParseObject>(MainActivity.this, new ParseQueryAdapter.QueryFactory<ParseObject>() {
    @Override
    public ParseQuery<ParseObject> create() {

        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(ParseObject.class);
        query.fromLocalDatastore();

        return query;
    }
});
mListView.setAdapter(mAdapter);

现在我有一些固定的对象并且它们正确显示,但是当我取消它们时就像这样:

//Some ParseObject in the above adapter
object.unpinInBackground(new DeleteCallback() {
    @Override
    public void done(ParseException e) {
        if(e == null) {
            //I beleive this would be the correct approach.
            mAdapter.notifyDataSetChanged();
        }
    }
});

当然,我希望该项目从相应的ListView中消失,但它并不是。但是说我回到另一个活动并重新访问此活动,ListView显示正确,没有最近取消固定的对象。

这是一个错误吗?如果不是我做错了什么?

2 个答案:

答案 0 :(得分:2)

我有同样的问题)我用invoke方法ParseQueryAdapter.loadObjects()来解决它。

答案 1 :(得分:0)

您可以在致电mAdapter.remove(object)

之前尝试notifyDataSetChanged();

unpinInBackground从数据库中删除对象。可能适配器具有对象的本地副本。

remove中似乎没有ParseQueryAdapter方法。

以下是官方消息来源:

  

由于ParseQueryAdapter旨在始终显示a的结果   ParseQuery,您需要使用API​​请求来重新加载查询。

https://www.parse.com/questions/delete-a-object-using-parsequeryadapter