我在Android上使用Parse;我正在尝试创建一个将按指定类型检索用户的查询,如果该用户属于该类型,则获取与该用户关联的数据。
更大的目标是使用数据创建CustomList视图。我有这个ParseQuery:
//Parse data to get users
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.orderByAscending(ParseConstants.KEY_PRACTICE_NAME);
query.whereEqualTo("userType", "midwife");
query.findInBackground(new FindCallback<ParseUser>() {
public void done(ParseUser user, ParseException e) {
if (user == null) {
Log.d("user", "The getFirst request failed.");
// You don't have a good value to use, so figure
// out a way to handle that scenario
} else {
Log.d("id", "Retrieved the object.");
String midwifefirm = user.getString("practicename");
String experience = user.getString("yearsofexperience");
String education = user.getString("education");
String philosophy = user.getString("practicephilosophy");
}
}
});
此时出现错误:
query.findInBackground(new FindCallback<ParseUser>() {
它声明:
“必须将从FindCallback派生的匿名类声明为abstract 或者实现抽象方法done(List,ParseException) Findcallback
如果我将done方法更改为:
public void done(List<ParseUser> user, ParseException e)
错误消失了,但是,我似乎无法使用getString(错误:无法解析方法)。
我的猜测是我在done方法中获取了一个数组列表,然后尝试检索单个数据字符串......
如何使用ParseQuery
设置查询以获取有关特定用户类型的数据?
非常感谢
迈克尔
答案 0 :(得分:2)
这是因为您的查询是针对用户列表的,findInBackground()
返回列表因此使用FindCallback<ParseUser>()
。根据您的尝试,有多种解决方案:
ParseUser
,然后您可以在每个项目上调用getString()
query.getInBackground("userObjectId", new GetCallback<ParseObject>()
将返回单个用户并对其进行操作。getFirstInBackground(new GetCallback<ParseObject>()
但您知道您的查询应该只返回一个用户,然后使用该对象。