Android 实时数据库获取名称和值
我正在使用firebase实时数据库 有一个用户名,如-user1,然后是一些他要求的供应品,如供应品名称标记,然后是数量,如5 这是我的JSON文件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,
{
"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);
非常好用,谢谢你