Android/Parse—使用另一列中的值查询类B列中的值,后者实际上是指向类a的ObjectId的指针
我读过很多关于这个话题的论坛,但没有一个是专门针对Android/Parse的Android/Parse—使用另一列中的值查询类B列中的值,后者实际上是指向类a的ObjectId的指针,android,parsing,pointers,include,objectid,Android,Parsing,Pointers,Include,Objectid,我读过很多关于这个话题的论坛,但没有一个是专门针对Android/Parse的 我有一个名为“Rankingboards”的解析类,它看起来像这样: ObjectId用户ID分级SAGGREgate ----------------------------------------- 123456 ABCDE 5.0 上面的“UserID”列实际上是指向User(解析中的默认类)中的“ObjectId”列的指针 ObjectId ---------- ABCDE 因此,我编写了以下代码,希望使用w
我有一个名为“Rankingboards”的解析类,它看起来像这样:
ObjectId用户ID分级SAGGREgate
-----------------------------------------
123456 ABCDE 5.0
上面的“UserID”列实际上是指向User(解析中的默认类)中的“ObjectId”列的指针
ObjectId
----------
ABCDE
因此,我编写了以下代码,希望使用whereEqualTo(“UserID”,“ABCDE”)在getQuery(“Rankingboards”)中获得ratingsaggergate(即5.0)的值
列表ob;
最终比率杆比率杆;
ratingBar=(ratingBar)v.findViewById(R.id.ratingBar);
字符串userid=user.getObjectId();
ParseQuery=ParseQuery.getQuery(“Rankingboards”);
查询。whereEqualTo(“UserID”,UserID);
试一试{
ob=query.find();
Log.d(“位置”、“+ob.size());
对于(int i=0;i
但这不起作用,因为“UserID”是指针而不是字符串我在别处读到,我必须使用“include”,但我无法让代码正常工作
希望有人能启发我
备注:
(1) 我正在使用一个定制的ListAdapter,它接受一个ParseUser对象(称为user)作为输入。这就是为什么您会在代码中看到user.getObjectID(),并且我已经验证了ObjectId是否正确
(2) ob.size()始终为0,因为查询不起作用。当我打印出query.size()时,Rankingboards中的条目总数是正确的
我刚刚找到了解决方案,我也遇到了同样的问题。当你使用
query.whereEqualTo("UserID", userid);
它是一个指针,当执行相等操作时,不能使用字符串。方法是介绍对象本身。消除
String userid = user.getObjectId();
然后介绍用户
,您在那里有用户ID
query.whereEqualTo("UserID", user);
List<ParseObject> ob;
final RatingBar ratingBar;
ratingBar = (RatingBar) v.findViewById(R.id.ratingBar);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Rankingboards");
query.whereEqualTo("UserID", user);
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();
}
query.whereEqualTo(“UserID”,用户);
列表ob;
最终比率杆比率杆;
ratingBar=(ratingBar)v.findViewById(R.id.ratingBar);
ParseQuery=ParseQuery.getQuery(“Rankingboards”);
查询。whereEqualTo(“用户ID”,用户);
试一试{
ob=query.find();
Log.d(“位置”、“+ob.size());
对于(int i=0;i
query.whereEqualTo("UserID", user);
List<ParseObject> ob;
final RatingBar ratingBar;
ratingBar = (RatingBar) v.findViewById(R.id.ratingBar);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Rankingboards");
query.whereEqualTo("UserID", user);
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();
}