如何通过Android使用Parse查询数据库

如何通过Android使用Parse查询数据库,android,mysql,database,parse-platform,querying,Android,Mysql,Database,Parse Platform,Querying,因此,我能够将内容正确地存储到Parse数据库中,但对于如何使用Parse正确地查询内容,我有点困惑。这里有一个方法,我尝试查询一个字符串并返回它。如果你们能帮忙,我将不胜感激 public String query() { ParseQuery<ParseObject> query = ParseQuery.getQuery("TestObject"); query.findInBackground(new FindCallback<ParseObject&g

因此,我能够将内容正确地存储到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;
}

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

从文档中,您应该始终首先查找答案。 (搜索FindCallBack)

由于
FindCallBack
执行一个新的后台线程,因此uithread不会等待它完成

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

这就是Toast消息为空的原因


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

您尝试过单步执行这些代码路径吗

从文档中,您应该始终首先查找答案。 (搜索FindCallBack)

由于
FindCallBack
执行一个新的后台线程,因此uithread不会等待它完成

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

这就是Toast消息为空的原因


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

解释当前代码的问题会很有帮助(例如,您的查询是否没有返回任何内容,查询是否正在创建错误)。哦,对不起,现在,它只是空的。因此,当我返回到放置toast语句的活动时,它只会烤一个空白框。这将有助于解释当前代码的错误(例如,您的查询是否没有返回任何内容,查询是否创建了错误)。哦,对不起,现在,它只烤一个空白框。所以当我回到我放祝酒词的活动时,它只是在一个空白的盒子里祝酒。
 MyParse example = new MyParse();
 Toast.makeText(this,example.query(),Toast.LENGTH_SHORT).show();