如何从 Firebase 获取字符串列表以填充 Spinner [英] How to get a String List from Firebase to fill a Spinner
本文介绍了如何从 Firebase 获取字符串列表以填充 Spinner的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的数据库是这样排列的:
my database is arranged like this:
我想从 areaName 获取所有值作为字符串列表或任何形式的列表,并使用它来填充 Spinner.我遇到的问题是它只检索最后一个值(在本例中为纽约").这是我的实际代码:
I want to get all the values from areaName as a String List or any form of list and use it to populate a Spinner. The problem I am getting is that it only retrieves the last value (in this case "New York"). This is my actual code:
fDatabaseRoot.child("areas").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
String areaName = areaSnapshot.child("areaName").getValue(String.class);
Spinner areaSpinner = (Spinner) findViewById(R.id.spinner);
final String[] areas = {areaName};
ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(UAdminActivity.this, android.R.layout.simple_spinner_item, areas);
areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
areaSpinner.setAdapter(areasAdapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
推荐答案
我没有测试该代码,但或多或少,这就是您必须做的:
I didn't test that code but, more or less, that is what you have to do:
fDatabaseRoot.child("areas").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Is better to use a List, because you don't know the size
// of the iterator returned by dataSnapshot.getChildren() to
// initialize the array
final List<String> areas = new ArrayList<String>();
for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
String areaName = areaSnapshot.child("areaName").getValue(String.class);
areas.add(areaName);
}
Spinner areaSpinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(UAdminActivity.this, android.R.layout.simple_spinner_item, areas);
areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
areaSpinner.setAdapter(areasAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
希望能帮到你!
问候.
这篇关于如何从 Firebase 获取字符串列表以填充 Spinner的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文