从Parse Table中检索字符串值

时间:2015-11-13 05:57:29

标签: java android parse-platform

这应该相当简单。我有一个名为“库存”的课程。我有两个重要的专栏。 “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

2 个答案:

答案 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 ...什么样的数据你检索....