如何通过Android使用Parse查询数据库
因此,我能够将内容正确地存储到Parse数据库中,但对于如何使用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
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();