这应该相当简单。我有一个名为“库存”的课程。我有两个重要的专栏。 “productName”和“productPrice”。我需要根据productName获取productPrice。我如何查询名称然后检索相关价格? String始终返回null。
更新
@Override
public String getCost() {
final String[] productValue = {null};
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>
query.whereEqualTo("productName", Capris);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> list, ParseException e) {
if (e == null) { //no exception, hence success
productValue[0] = list.get(0).getString("productPrice");
}
}
});
return productValue[0];
}
这或多或少是我现在所拥有的。有没有更好的方法来返回一个字符串?它仍然是空的。我只需要从查询中返回值。
工作答案:
Returning String from Parse.com query
另一个问题解决了这个问题。在上面的代码中,productValue [0]可能为null,因为它是一个aysnc调用所以用find()替换findInBackground
答案 0 :(得分:2)
productCost
是一类解析对象类型。当您应该访问包含productValue
的类的成员变量时,您将它转换为字符串。你应该使用这样的东西:
query.findInBackground(new FindCallback() {
@Override
public void done(List<ParseObject> objects,
ParseException e) {
if (e == null) {
for (ParseObject productCost : objects) {
// use productCost.get(' product value columnName') to access the properties of the productCost object.
}
} else {
//Query failed. There is an error
}
}
});
答案 1 :(得分:1)
尝试这样的事情......
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Inventory");
query.whereEqualTo("productName", Capris);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> list, ParseException e) {
if (e != null) {
for (ParseObject myData : list) {
String user = (String) myData.get("productPrice");
}
}
else {
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
}
你可以使用String / int ...什么样的数据你检索....