如何从2个不同的表android中解析数据?

时间:2015-12-04 08:38:08

标签: android parse-platform

您好我尝试使用解析从android中的2个不同表中检索数据但没有成功。我想从“Luoghi”表中检索照片表中所有“imageFile”的“titolo”。这是我的 databse这是我的代码

        list = new ArrayList<>();
        try {

            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Photos");

           query.include("luogoPointer");

            listaEventiParse = query.find();

            for (ParseObject country : listaEventiParse) {
                // Locate images in flag column
                ParseFile image = (ParseFile) country.get("imageFile");


                ParseObject luoghi= country.getParseObject("luogoPointer");

                ListaEventiItem map = new ListaEventiItem();
                map.setImmagine(image.getUrl());
                map.setId(luoghi.getString("titolo"));
                list.add(map);
            }
        } catch (ParseException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

我在luoghi.getString(“titolo”)上获得了java.lang.NullPointerException。 我错过了什么?

2 个答案:

答案 0 :(得分:0)

而不是仅包含指向要在.find()调用之前检索的字段(或字段)的指针:

query.include("luogoPointer.titolo");

答案 1 :(得分:0)

您在查询中包含luogoPointer,但此指针的照片表中的许多条目为空。当你得到照片结果时,你得到许多记录的空指针,并在这个空指针上调用getString(),这就是你得到NullPointerException的原因。

在查询中再添加一个条件,仅选择包含luogoPointer的记录。

  

query.whereExists(&#34; luogoPointer&#34);

现在你的查询是这样的:

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Photos");

       query.include("luogoPointer");
       query.whereExists("luogoPointer");

       listaEventiParse = query.find();