【问题标题】:Quickblox requestBuilder [or]Quickblox requestBuilder [或]
【发布时间】:2014-02-10 14:23:33
【问题描述】:
requestBuilder.or("userPhone",myPhone,phoneList);
        }
    }

    QBCustomObjects.getObjects("image", requestBuilder, new QBCallbackImpl() {

“phoneList”是字符串的arrayList。 现在在我的设备上这段代码运行良好,但在三星设备上我崩溃了: “java.lang.IllegalArgumentException:索引 147 处的查询中存在非法字符:https://api.quickblox.com/data/image..”

现在我确定是 arrayList 出了问题,因为如果我只放“00000”、“09878889”而不是 phoneList - 它工作正常。 该怎么办? 谢谢..

编辑:

ArrayList<String> al = new ArrayList<String>();
            HashSet<String> hs = new HashSet<String>();
            hs.addAll(phoneList);
            al.clear();
            al.addAll(hs);

            String[]arrString = new String [al.size()+1];
            for (int j = 0; j < al.size(); j++) {
                String str = al.get(j).toString();
                arrString[j+1]= str;
            }
            arrString[0]= myPhone;
            requestBuilder.or("userPhone",arrString);

这是我的解决方案,但我发现如果“arrString”大于 600+ 则不起作用,这是为什么呢?

【问题讨论】:

  • 伊戈尔,请帮帮我...

标签: java android arraylist quickblox custom-object


【解决方案1】:

让我解释一下 OR 运算符的工作原理:

1) 例如,您有 name 字段

要获取名称为 Alex OR Garry 的所有记录,请使用下一个查询:

requestBuilder.or("name", "Alex", "Garry");

2) 例如,您有 name 字段和 age 字段

要获取名称为 Alex 或年龄 22 的所有记录,请使用下一个查询:

requestBuilder.or("name", "Alex");
requestBuilder.or("age", "22");

试试这样的方法

【讨论】:

  • 谢谢,我明白这一点,但如果我愿意:requestBuilder.or("name", "Alex", "Garry","Leon","Yohan","Nora".... .);还有更多的名字?我把所有的名字都放在了arraylist中,就像我说的,它在我的设备上工作,但在其他设备上我需要把所有的名字都放在字符串数组上,但只有当字符串数组小于600+时它才有效......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 1970-01-01
相关资源
最近更新 更多