如何从解析中删除新创建的对象?

时间:2015-08-22 16:35:36

标签: android object parse-platform

我想删除刚刚创建的对象。 我正在使用解析来处理我的所有数据

这种方式的工作原理是: 1.列表中有一个帖子。 这个帖子有一个类似按钮" 3.何时"喜欢"按下,将创建一个新对象,该对象指向作为父项的帖子。 "喜欢"按钮也会被隐藏,另一个按钮被称为"喜欢"将是可见的。 4.何时喜欢"按下按钮,需要删除刚刚创建的类似对象。然后"喜欢"按钮将被隐藏,并且"喜欢"按钮出现。

我相信逻辑非常简单。我已经成功构建到第3部分。我目前需要帮助来删除我刚刚创建的类似对象。

这是这两个按钮的代码:

holder.LikeMain.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final ParseObject socialObject = mSocial.get(position);
            String objectId = socialObject.getObjectId();
            ParseQuery<ParseObject> query = ParseQuery.getQuery("Social");
            query.getInBackground(objectId, new GetCallback<ParseObject>() {
                public void done(ParseObject reminderObject, ParseException e) {
                    if (e == null) {
                        // Now let's update it with some new data. In this case, only cheatMode and score
                        // will get sent to the Parse Cloud. playerName hasn't changed.


                        ParseObject myLike = new ParseObject("LikedSocial");
                        ParseUser currentUser = ParseUser.getCurrentUser();

                        final String currentUserUsername = currentUser.getUsername();
                        myLike.put("LikeOwner", currentUserUsername);

                        // Add a relation between the Like and Comment
                        myLike.put("PostId", socialObject);

                        // This will save both myLike and myComment
                        myLike.saveInBackground();


                        holder.LikeMain.setVisibility(View.GONE);
                        holder.LikedMain.setVisibility(View.VISIBLE);
                    }
                }
            });
        }
    });
    holder.LikedMain.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            ParseObject.createWithoutData("LikedSocial", currentUserUsername).deleteEventually();
            holder.LikeMain.setVisibility(View.VISIBLE);
            holder.LikedMain.setVisibility(View.GONE);
        }
    });

1 个答案:

答案 0 :(得分:1)

您应该将currentUserName替换为删除代码中Like的对象ID。即

-> 1 -> 2 -> 5
-> 1 -> 3

应该是:

ParseObject.createWithoutData("LikedSocial", currentUserUsername).deleteEventually();

有两种删除对象的方法:

如果手头有物体,请使用

ParseObject.createWithoutData("LikedSocial", idOfLikeObject).deleteEventually();

如果您只拥有对象的ID,即ObjectId,请使用

myLike.deleteInBackground();

编辑:

此外,粘贴代码的方式使您看起来像是在设置OnClickListener两次 - 第一次设置喜欢和第二次删除喜欢。

如果你这样做,那么使用变量来指示你喜欢的状态并使用switch语句来做一个必要的'add like'或'delete like'可能会更有效。单个OnClickListener。