查询解析用户

时间:2015-12-06 16:54:42

标签: android parse-platform

我正在Android中创建一个应用程序,允许用户搜索在应用程序中注册的其他用户。

要求每个用户输入一组详细信息,例如"出生日期"在进入app之前。这些数据直接存储在用户类中。

我的要求是,如果用户输入用户名并进行搜索,他必须能够查看该特定用户的所有可用详细信息。 例如:假设每个用户都必须有一个电子邮件(字符串)和出生日期(字符串)。用户搜索姓名" John"。该查询应该是什么,以便我可以使用用户名" John"来检索用户的电子邮件和DOB。

Parse.com指南中提供的数据是

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", name);
query.findInBackground(new FindCallback<ParseUser>() {
    public void done(List<ParseUser> objects, ParseException e) {
        if (e == null) {
            Toast.makeText(getApplicationContext(),"Query Success",Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(),"Query Not Successful",Toast.LENGTH_LONG).show();
        }
    }
});
  1. 我需要做出哪些改变才能实现目标?

  2. 如何访问存储在对象中的字符串?

  3. 如果我从查询中检索多条记录,我该如何处理呢?

  4. 我已按此编辑了我的查询

                ParseQuery<ParseUser> query = ParseUser.getQuery();
                query.whereMatches("username", name);
                query.findInBackground(new FindCallback<ParseUser>() {
                    public void done(List<ParseUser> objects, ParseException e) {
                        if (e == null) {
                            for(ParseUser singleobject:objects){
                            String mail=singleobject.get("email").toString();
                            Toast.makeText(getApplicationContext(),mail,Toast.LENGTH_LONG).show();}
                        } else {
                            Toast.makeText(getApplicationContext(),"Query Not Successful",Toast.LENGTH_LONG).show();
                        }
                   }
                });
    

    没有生成Toast,但执行查询时没有任何异常。

    循环语句是正确的还是我做错了?

1 个答案:

答案 0 :(得分:2)

  

1.我需要做出哪些改变才能实现目标?

代码看起来正确地向ParseUser查询用户名的完全匹配。要更松散地匹配,请考虑使用whereMatches

  

2.如何访问存储在对象中的字符串?

Parse.Object根据属性类型提供getString()以及其他“get”变体。

  

3.如果我从查询中退出多条记录,我该如何处理呢?

findInBackground完成处理程序的“objects”参数是一个包含零个或多个查询匹配项的数组。像对待任何其他人一样处理这个数组。