【问题标题】:Parse.com Getting Query and Converting It into String JavaParse.com 获取查询并将其转换为字符串 Java
【发布时间】:2014-05-15 02:11:07
【问题描述】:

我正在尝试做的是查询一个类并获取一些字符串。 但是下面的代码返回类似 ;

com.parse.ParseObject@b4209180

我无法将其恢复为正常的字符串值。

ParseQuery<ParseObject> query = ParseQuery.getQuery("question");
//query.whereKeyExists:@"objectId"
query.whereExists("questionTopic");

query.findInBackground(new FindCallback<ParseObject>() {

    @Override
    public void done(List<ParseObject> topics, ParseException e) {
        // TODO Auto-generated method stub
        if(e==null){


                textview.setText(topics.toString());

            }


        }else{
             Log.d("notretreive", "Error: " + e.getMessage());
        }


    }
});

【问题讨论】:

    标签: java android parse-platform object-to-string


    【解决方案1】:

    代码中的“topics”是问题对象的列表。您需要从该对象中获取主题。这应该会让你上路:

    ParseQuery<ParseObject> query = ParseQuery.getQuery("question");
    query.whereExists("questionTopic");
    
    query.findInBackground(new FindCallback<ParseObject>() {
    
        @Override
        public void done(List<ParseObject> questions, ParseException e) {
            // The query returns a list of objects from the "questions" class
            if(e==null){
              for (ParseObject question : questions) {
                // Get the questionTopic value from the question object
                Log.d("question", "Topic: " + question.getString("questionTopic");
              }       
            } else {
                 Log.d("notretreive", "Error: " + e.getMessage());
            }
        }
    });
    

    【讨论】:

      【解决方案2】:

      API 我可以看到ParseObject 类从Object 类继承toString()

      这意味着除非有自定义 toString() 的实现,否则它将返回该对象的人类可读描述。

      检查 here 是否在您的情况下调用了 toString()

      编辑:

      首先,您尝试在 List 对象上调用 toString()

      topics.toString()
      

      您将不得不像这样迭代该列表

      for(ParseObject parseObj : topics){
      //do something with parseObj like
      parseObj.get(<provide_key_here>);
      //print to check the value
      System.out.println(parseObj.get(<provide_key_here>));
      //where key is generally attribute name
      }
      

      【讨论】:

      • 非常感谢,但我无法理解用法。如果您能简单地解释一下,我将非常感激。
      • 查看我的编辑,也可以参考androidbook.com/item/4458 并学习核心Java基础知识,它将帮助您更快地解决此类问题
      • 你说的我都做了。但结果是一样的 :( 并且 system.out.println 没有返回任何东西。所以我正在尝试使用 settext() 。
      • question 是类名吗?在ParseQuery.getQuery("question");??\
      【解决方案3】:

      我可以看到这是大约两岁。但我目前有同样的问题。所以这就是我所做的。

      您不能只调用 setText.toString,因为“主题”作为 Parse 对象返回。您需要运行 for 循环来遍历每个主题对象并从该对象获取文本,将其存储在字符串中,然后您可以将文本设置为字符串。这就是我所做的。

      final List questions = new ArrayList<String>();
      
      final ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("MasterQuestionList");
      query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> Question, ParseException e) {
          if (e == null) {
            if (Question.size() > 0) {
      
              for (ParseObject user : Question) {
      
               String tFile = (String) user.get("Question");
                questions.add(tFile);
      
              }
      
              TextView a = (TextView) findViewById(R.id.sentence);
              a.setText(String.valueOf(questions));
      

      我创建了一个列表,并将所有文本值添加到该列表中。

      希望这对遇到类似问题的人有所帮助。

      【讨论】:

      • @clearlight,不要动我的评论。我可以从您的个人资料中看到,您通过编辑 *500 条左右的帖子获得了金徽章。你所做的只是改变了我的措辞并稍微格式化了帖子。除了为自己获得额外积分外,您没有提供其他见解。我把这个回滚了。希望你能看到。 〜干杯
      • 您的帖子在新用户第一个帖子的审核队列中。目标是通过编辑、评论、投票、标记来改进答案......我看到了特殊的格式,以及比需要更多的介绍和结尾的句子,这些句子可能简洁并且在代码之上做得更好。至于积分/徽章指控 - 你很困惑......我已经拥有徽章。您只能获得一个用于编辑帖子。我这样做是为了改进和清理帖子,我帮助了很多用户。这很奇怪,因为在你所说和所做的事情中有一些危险信号,让你听起来好像你不是新来的,但只有 1 个代表
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多