Android 实时数据库获取名称和值

Android 实时数据库获取名称和值,android,listview,firebase,firebase-realtime-database,Android,Listview,Firebase,Firebase Realtime Database,我正在使用firebase实时数据库 有一个用户名,如-user1,然后是一些他要求的供应品,如供应品名称标记,然后是数量,如5 这是我的JSON文件 { "Users" : { "User1" : { "Markers" : 5, "Scissors" : 1, "Staplers" : 4 }, "User2" : { "Markers" : 2, "Scissors" : 5,

我正在使用firebase实时数据库

有一个用户名,如-user1,然后是一些他要求的供应品,如供应品名称标记,然后是数量,如5

这是我的JSON文件

    {
  "Users" : {
    "User1" : {
      "Markers" : 5,
      "Scissors" : 1,
      "Staplers" : 4
    },
        "User2" : {
      "Markers" : 2,
      "Scissors" : 5,
      "Staplers" : 3
    }
  }
}
我想取回我所要求的供应品,格式如下:

标记5

剪刀1

订书机4

信息是通过列表视图显示的,但我不知道如何通过列表视图获取名称和数量,我只能获取其中一个

我仅用于获取名称的代码是:

            Set<String> set = new HashSet<String>();
            Iterator i = dataSnapshot.getChildren().iterator();

            while (i.hasNext()) {
                set.add(((DataSnapshot) i.next()).getKey());
            }

请尝试以下方法:

for (DataSnapshot supply : dataSnapshot.getChildren()) {
    String key = supply.getKey();
    String value = supply.getValue();
}

另外,您可以将
i.next()
保存到一个变量中,然后您可以在同一个循环中访问
键和
值,而无需调用额外的
i.next()
(我想这就是问题所在)。

请尝试以下方法:

for (DataSnapshot supply : dataSnapshot.getChildren()) {
    String key = supply.getKey();
    String value = supply.getValue();
}

另外,您可以将
i.next()
保存到一个变量中,然后您可以在同一个循环中访问
键和
值,而无需调用额外的
i.next()
(我想这就是问题所在)。

我已将脚本更改为此脚本

            key = (((DataSnapshot) i.next()).getKey());
            value = ((dataSnapshot).child(key).getValue().toString());
            set.add(key+" "+value);

非常好,谢谢你。

我把脚本改成了这个

            key = (((DataSnapshot) i.next()).getKey());
            value = ((dataSnapshot).child(key).getValue().toString());
            set.add(key+" "+value);
非常好用,谢谢你