【发布时间】:2015-09-03 04:35:43
【问题描述】:
我正在尝试从 Firebase 检索餐厅名称数据并将它们输出到 ListView 上的单独行中。我创建了一个仅包含数字(字符串)的数据样本。
检索数据似乎很好,因为我可以在控制台中逐行输出它们,但我的 Hashmap 将所有内容保存到同一个“节点”或“字段”中
谁能帮我理解我做错了什么?
@Override
public void onDataChange(DataSnapshot Snapshot) {
int x = 1;
//Do some stuff once
for (DataSnapshot RestNames : Snapshot.getChildren()) {
name = RestNames.getValue().toString();
//System.out.println(name);
map.put(x, name);
x=x+1;
}
System.out.println(map);
Items.add(map);
System.out.println(Items);
listView.setAdapter(mgadapter);
}
控制台输出如下:
{8=3456, 11=9, 9=34567, 5=3, 3=3, 4=4, 10=0, 1=1, 7=345, 6=34, 2=2}
Android 模拟器为每一行显示相同的值。
我想在单独的行中显示每个值。
谢谢!
编辑:JSON 片段
{
"Eat": {
"Name": {
"-Jy3yehAkgqhg4knlxx_": "1",
"-Jy3yjQT2AxtZMqD2kov": "2",
"-Jy3yk96Mo5MKOEEzviJ": "3",
"-Jy3yksamL08R0BckxNZ": "4",
"-Jy5JBJYZUTxZQtmdDmi": "3",
"-Jy5JIXT_lDZrUOkF3T1": "34",
"-Jy5JJ0oMqGrs2vfFge2": "345",
"-Jy5JJTyET830PYOT3yA": "3456",
"-Jy5JJu-jDGMDXncWDKf": "34567",
"-Jy5JVejdsUtggM8vBoi": "0",
"-Jy5JbwEoWrKAi6XIVQY": "9"
}
}
}
【问题讨论】:
-
您能否将 JSON 的 sn-p 包含在问题中?通过在 Chrome JavaScript 控制台中执行此操作,您可以从 Firebase 数据仪表板轻松获取此信息:
new Firebase('https://mine.firebaseio.com/').once('value', function(s) { console.log(JSON.stringify(s.val(), null, ' ')); }, function(e) { console.error(e); }) -
@FrankvanPuffelen 请在帖子底部查看我的 sn-p,谢谢!
-
这与问题没有直接关系,但我强烈建议您将变量命名为
snapshot和restNames,因此很明显它们是对象而不是类。它至少会使语法荧光笔正常工作。 :) -
@fluffy 谢谢 :D 我会在之后这样做
-
Firebase 还有一个操作系统库来帮助填充 ListView:github.com/firebase/firebaseui-android
标签: android listview layout hashmap firebase