如何以正确的方式检索数组? 我试过这个:
ParseObject parseObject = new ParseObject("test");
List<String> list = parseObject.getList("arr");
但是效果不好,我很确定它的返回值为null。 有什么想法吗?
答案 0 :(得分:0)
这应该有效 -
ParseQuery<ParseObject> query = ParseQuery.getQuery("TrackedLocation");
query.whereEqualTo("imei", helpUtils.getDeviceIDEqualsIMEI());
query.setLimit(1000);
query.findInBackground(new FindCallback<ParseObject>()
{
@Override
public void done(List<ParseObject> dataList, ParseException e) {}
});
答案 1 :(得分:0)
试试这个。它会起作用。当我测试时,它对我有效。
list = new ArrayList<String>();
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("test");
query.whereExists("arr");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
// TODO Auto-generated method stub
if(e==null){
for(int i=0; i<objects.size();i++){
list=objects.get(i).getList("arr");
Log.e("list",list.toString());
}
}
}
});
答案 2 :(得分:0)
首先,您应检查要检索的数组是否为空。应遵循以下步骤:
步骤1:声明一个列表,用于在此列表中保存检索到的数组
步骤2:检查检索到的数组是否为空
步骤2(a):如果为空,则将null分配给列表
步骤2(b):如果没有,那么你将获得所需的数组值
程序化描述:
List<String> ary_users = new ArrayList<String>();
ParseQuery<ParseObject> query = ParseQuery.getQuery("test");
query.whereExists("arr");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> userList,
ParseException e) {
if (e==null) {
if (userList.size()>0) {
for (int i = 0; i < userList.size(); i++) {
ParseObject p = userList.get(i);
if (p.getList("arr")!=null) {
ary_users = p.getList("arr");
}
else
{
ary_users = null;
}
}
}
}
});