2017-08-02 50 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

是的,我解决了这个问题。 –

相关问题