【问题标题】:How to query from database using Parse via Android如何通过 Android 使用 Parse 从数据库中查询
【发布时间】:2015-12-21 12:07:13
【问题描述】:

所以我能够将内容正确存储到 Parse 数据库中,但我对如何使用 Parse 正确查询内容有点困惑。这是我尝试查询字符串并返回它的方法。如果你们能提供帮助,将不胜感激!

public String query()
{
    ParseQuery<ParseObject> query = ParseQuery.getQuery("TestObject");
    query.findInBackground(new FindCallback<ParseObject>() //Runs a new thread here.
    {
        @Override
        public void done(List<ParseObject> list, ParseException e)
        {
            cardName = Global_Class.getInstance().getValue().grabUserCardNameString = testObject.getString("McDonald");
        }
    });
    return cardName;
}

}

然后在另一个活动中,我只想为那个查询敬酒,看看我是否收到了那个字符串。

 MyParse example = new MyParse();
 Toast.makeText(this,example.query(),Toast.LENGTH_SHORT).show();

【问题讨论】:

  • 解释一下您当前的代码出了什么问题会很有帮助(例如,您的查询是否没有返回任何内容,查询是否产生了错误)。
  • 哦,抱歉,现在,它只是 Toasts 空白。因此,当我回到我放置 toast 语句的活动时,它只是敬酒一个空白框。

标签: android mysql database parse-platform querying


【解决方案1】:

您是否尝试过单步执行这些代码路径?

从文档中,您应该始终首先寻找答案。 https://parse.com/docs/android/api/(搜索 FindCallBack)

由于FindCallBack&lt;&gt; 执行一个新的后台线程,uithread 不会等待它完成。

因此,query() 方法不会等待后台线程的结果。这就是为什么cardName 将返回它在query() 方法范围之外设置的任何值。

这就是 Toast 消息为空的原因。

您需要做的是,在done() 方法中,或者包含一个对所选活动的回调方法,或者在done() 方法中执行Toast 消息。您将需要在 done 方法范围内的上下文来执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多