解析query.whereEqualTo字符串问题

时间:2014-10-31 18:05:24

标签: android jquery string parse-platform objectid

我正在使用Parse后端为我的Android应用程序。我需要在数据库中查询具有特定字符串值的字段的记录。以下是Parse代码

strObjectId是使用Parse ObjectId初始化的String,如下所示

        String strObjectId = MyParseObject.getObjectId();

解析代码

        ParseQuery<ParseObject> query = ParseQuery.getQuery("MyDataTable");
        query.whereEqualTo("code", Code);
        query.getFirstInBackground(new GetCallback<ParseObject>()
        {
          public void done(ParseObject object, ParseException e)
          {
            if (object == null) 
            {
                return;
            } 
            else 
            {
                ShowToast("Record found!");
            }
          }
        });

问题是,当代码&#39;代码&#39;在运行查询

之前,硬编码如下
        String Code = "krErZgz9Is";

但是当Code被分配Parse ObjectId时,它不起作用,如下所示

        String Code = strObjectId;

显然,数据表确实有一个记录了&#39;代码&#39;有价值的字段&#39; krErZgz9Is&#39;

您的帮助将不胜感激

由于

2 个答案:

答案 0 :(得分:0)

您是否尝试打印出strObjectId?如果您的对象尚未保存在Parse中,或者该对象未从Parse加载。它没有对象Id。

另外,您是否尝试直接检查与objectId的相等性?

query.whereEqualTo("code", MyParseObject.getObjectId());

答案 1 :(得分:0)

我已经为我工作了

我创建了一个EditText并包含了我想在查询中找到匹配项的文本。如果您不想展示它,请尝试将其隐藏在布局中。

EditText editText = (EditText) findViewById(R.id.editText);

editText.setText(strObjectId);


ParseQuery<ParseObject> query = ParseQuery.getQuery("MyDataTable");
query.whereEqualTo("code", editText.getText().toString());
query.getFirstInBackground(new GetCallback<ParseObject>()
{
    public void done(ParseObject object, ParseException e)
    {
        if (object == null) 
        {
            return;
        }
        else 
        {
            ShowToast("Record found!");
        }
    }
});

我不明白为什么删除getText()函数不起作用所以你最好保持这种方式。