2017-08-02 70 views
0

當活動開始時,它通過從firebase獲取數據顯示列表視圖中的所有數據。這是工作正常根據我的願望,但是當我添加新的節點到Firebase數據庫它不會進入 如果條件是if (snapchat.getKey().equalsIgnoreCase("Order"))和所有下面的代碼,也沒有設置適配器 這裏是我的代碼 以下請幫助。 和對不起我的英語onChildAdded在我的情況下工作不正常

for (DataSnapshot snapchat: dataSnapshot.getChildren()) { 
    if (snapchat.getKey().equalsIgnoreCase("Order")) {} else { 
     for (DataSnapshot lat: snapchat.getChildren()) { 
      if (isLatitudeGet) { 
       try { 
        Longitude = Double.parseDouble(lat.getValue().toString()); 
        addresses = location.getFromLocation(latitude, Longitude, 1); 
        if (addresses.size() > 0) 
         address = addresses.get(0).getSubLocality(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      Card card = new Card(dataSnapshot.getKey(), lat.getValue().toString(), tempLatitude, address); 
      cardArrayAdapter.add(card); 
      listView.setAdapter(cardArrayAdapter); 
      isLatitudeGet = false; 
     } else { 
      isLatitudeGet = true; 
      tempLatitude = lat.getValue().toString(); 
      try { 
       String p = lat.getValue().toString(); 
       latitude = Double.parseDouble(p); 
      } catch (NumberFormatException e) { 

      } 
     } 
+0

當你在數據庫中的新節點可以是大寫? –

+0

它的Google內置推送Id和它的第一個字符是upperCase @AlexMamo –

+0

您正在使用哪個監聽器? – Priya

回答

0

它不會進入if條件,因爲你如果條件是空的。

if (snapchat.getKey().equalsIgnoreCase("Order")) {} 

看到大括號,是空的。它在你的其他狀態中的一切。要解決此問題,請將所有代碼移入if語句或使用:

if (!snapchat.getKey().equalsIgnoreCase("Order")) {} 

希望它有幫助。

+0

沒有,這對我來說是第一次,當活動開始時,但當我添加新節點具有相同類型(先前節點),它不會進入if和其他 –

+0

如果它是真的,它會去if語句這是空的,什麼都不會發生。把它弄錯,發生了什麼? else語句是否被調用?如果不是,那麼情況總是如此。 –

+0

是的,我解決了這個問題。 –

相關問題