Android / Cloudboost:将每个用户追加到特定行

时间:2016-03-27 20:17:57

标签: android list cloudboost

我想将每个按下按钮的用户的当前用户附加到类型列的列中,以便稍后我可以获得有多少人按下它的长度。

这是我的代码:

public void findAnswered(CloudQuery query) throws CloudException {
    query.findById(questionID, new CloudObjectCallback() {
        @Override
        public void done(CloudObject object, CloudException e) throws CloudException {
            if (object != null) {
                Log.i("---------FIND ANS QUERY", "SUCCESS I: " + object.getID());
                answered(object);
            }
            if (e != null) {
                Log.i("---------FIND ANS QUERY", "ERROR: " + e.getLocalizedMessage());
            }
        }
    });
}

public void answered(CloudObject object) throws CloudException {
    CloudObject [] user = {CloudUser.getcurrentUser()};

    Log.i("------UPDATE ANS OBJECT", "A: " + this.answered);
    Log.i("------UPDATE ANS OBJECT", "W: " + this.wrongAnswer);
    Log.i("------UPDATE ANS OBJECT", "R: " + this.rightAnswer);

    object.set("earnings", earnings);
    object.set("dividend", dividend);
    object.set("answered", user);
    if (this.wrongAnswer == 1) {
        object.set("wrong", user);
    }
    if (this.rightAnswer == 1) {
        object.set("right", user);
    }

    object.save(new CloudObjectCallback() {
        @Override
        public void done(CloudObject object, CloudException e) throws CloudException {
            if (object != null) {
                // Success
                Log.i("------UPDATE ANS OBJECT", "SUCCESS I: " + object.getId());
            }
            if (e != null) {
                // Error
                Log.i("------UPDATE ANS ERROR:", e.getLocalizedMessage());
            }
        }
    });
}

但是当我尝试在两部手机上进行此操作时,它只会添加第一个点击它并跳过第二个用户的用户。如何将用户添加到同一个框中?

1 个答案:

答案 0 :(得分:0)

我认为问题出在这一行上 CloudObject [] user = {CloudUser.getcurrentUser()};
您正在创建仅包含当前用户的阵列,以便在使用CloudObject更新object.set("answered", user);时 ,您只需覆盖列表栏中任何现有的用户列表,而不是实际当前用户附加到现有用户。实际需要。
您应该做的是在更新{{1}之前将所有现有用户检索到适当的数据结构(如ArrayList或Set),并使用users.add(CloudUser.getCurrentUser()) 追加当前用户}