我已经阅读了很多关于这个主题的论坛,但没有一个是特定于 Android/Parse 的。
我有一个名为“Rankingboards”的 Parse 类,如下所示:
ObjectId UserId ratingAggregate
---------- --------- ----------
123456 ABCDE 5.0
上面的“UserID”列实际上是指向 User(Parse 中的默认类)中的“ObjectId”列的指针。
ObjectId
----------
ABCDE
于是我写了如下代码,希望在getQuery("Rankingboards")中使用whereEqualTo("UserID","ABCDE")获取ratingAggregate的值(即5.0)。
List<ParseObject> ob;
final RatingBar ratingBar;
ratingBar = (RatingBar) v.findViewById(R.id.ratingBar);
String userid = user.getObjectId();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Rankingboards");
query.whereEqualTo("UserID", userid);
try {
ob = query.find();
Log.d("POSITION",""+ob.size());
for (int i = 0; i < ob.size(); i++) {
Number num7 = ob.get(i).getNumber("ratingsAggregate");
if (num7!=null) {
ratingBar.setRating(num7.floatValue());
}
}
} catch (ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
但这不起作用,因为“UserID”是一个指针而不是字符串。
我在其他地方读到我必须使用“包含”,但我无法让代码工作。
希望有人能启发我。
注意:
(1)我正在使用一个定制的 ListAdapter,它接受一个 ParseUser 对象(称为用户)作为输入。这就是您在代码中看到 user.getObjectID() 并且我已经验证 ObjectID 正确的原因。
(2) ob.size() 始终为 0,因为查询不起作用。当我打印出 query.size() 时,排行榜中的条目总数是正确的。