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+它不起作用,为什么会这样?
答案 0 :(得分:1)
让我解释 OR 运算符的工作原理:
1)例如,您有名称字段
要获取名为Alex OR Garry的所有记录,请使用下一个查询:
requestBuilder.or("name", "Alex", "Garry");
2)例如,您有名称字段和年龄字段
要获取名称为Alex或年龄22的所有记录,请使用下一个查询:
requestBuilder.or("name", "Alex");
requestBuilder.or("age", "22");
尝试像这样的somtehing