2015-12-04 91 views
0

嗨,我嘗試從android中的2個不同的表中檢索數據使用解析但沒有成功。我想從「Luoghi」表中檢索「照片」表中所有「imageFile」的「titolo」。這是我的 databse,這是我的代碼如何從2個不同的表中解析數據android?

 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。 我錯過了什麼?

query.include("luogoPointer.titolo");

+0

您可以通過承諾在雲存儲端實現 –

回答

0

包括你在查詢luogoPointer但在你的照片表中的許多條目:

+0

非常感謝這是正確的 –

+0

@EricTondelli我的榮幸。如果答案滿足您的要求,請檢查答案是否正確。 – ved

0

而是隻包含指針包含的字段(或域),你想要的.find()調用之前檢索這個指針是空白的。當你得到Photos結果時,你得到了許多記錄的空指針,並在這個空指針上調用getString(),這就是爲什麼你得到NullPointerException

在查詢中只包含一個條件,用於只選擇包含luogoPointer的記錄。

query.whereExists("luogoPointer");

現在查詢是這樣的:

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

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

     listaEventiParse = query.find(); 
+0

嗨感謝的答案,但它不工作我收到此錯誤:場TITOLO不能包括在內,因爲它是不是指向另一個對象的指針 –

+0

對不起,現在我意識到我建議的符號是爲了將調用嵌套到對象而不是字段。這不是你想達到的目的。 – jmrodrigg

+0

但是,我認爲你得到的錯誤是由於你沒有載入'luogoPointer'條目。可能你在''luogi''的ParseObject中只有它的objectId。讓我看看我能否記得你錯過了什麼。 – jmrodrigg

相關問題