Parse.com - Android:如果用户属于数组,则为boolean on

时间:2014-12-05 21:57:24

标签: android arraylist parse-platform

我在一个类中有一个用户数组,在“likers”列下 我想在最短的时间内检查当前用户是否包含在likers数组中 这是我目前的(功能失调的)代码:

        ArrayList<ParseUser> likers = (ArrayList<ParseUser>) rating.get("likers");
        Boolean contained = likers.contains(ParseUser.getCurrentUser()) //always returns false

如何更改它以使其有效?我觉得这是ObjectId的匹配。也许Parse SDK中有一个函数?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用下一种方法。

    ParseObject rating = ParseObject.create(ParseObject.class);
    ArrayList<ParseUser> likers = (ArrayList<ParseUser>) rating.get("likers");
    Boolean contained = containsUser(likers, ParseUser.getCurrentUser());

方法

private boolean containsUser(List<ParseUser> list, ParseUser user) {
    for (ParseUser parseUser : list) {
        if (parseUser.hasSameId(user)) return true;
    }
    return false;

}

关于你的代码。它工作正确,返回false。因为ArrayList实现了List接口。如果在contains方法中查看Javadoc for List,您将看到它使用equals()方法来评估两个对象是否相同。 rating.get(“likers”)的结果包含与ParseUser.getCurrentUser相同的ParseUsers,但它们在内存中是不同的对象。所以你需要通过比较Parse.com的ObjectId找到它。