2014-12-05 42 views
0

我有一個類的用戶的數組,在列「相似者」 我想檢查當前用戶是否包含在相似者陣列,在最短的時間 這是我目前(失調)代碼:Parse.com - Android:布爾如果一個用戶屬於一個陣列

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

我怎樣才能改變它,使其工作?我覺得這是ObjectId的比賽。也許在Parse SDK中有一個函數?

謝謝!

回答

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實現了列表接口。如果您查看包含方法的Javadoc for List,您將看到它使用equals()方法來評估兩個對象是否相同。 rating.get(「likers」)的結果包含與ParseUser.getCurrentUser相同的ParseUsers,但它們是內存中的不同對象。所以你需要通過比較Parse.com的ObjectId來找到它。