如何从Firebase获取字符串列表来填充微调器 [英] How to get a String List from Firebase to fill a Spinner
问题描述
我想从 areaName 获取所有的值作为一个字符串列表或任何形式的列表,并用它来填充一个微调。我得到的问题是,它只检索最后的值(在这种情况下纽约)。这是我的实际代码:
pre $ $ $ $ $ $ $ $ $ $ $ $ $ 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);
}
}
@覆盖
public void onCancelled(DatabaseError databaseError){
}
});
那么你需要做什么:
fDatabaseRoot.child(areas)。addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
//最好使用List,因为您不知道返回的迭代器的大小
// dataSnapshot.getChildren()到
//初始化数组
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){
$ b});
我希望这有助于您!
。
my database is arranged like this:
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 don'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) {
}
});
I hope it's helps!
Regards.
这篇关于如何从Firebase获取字符串列表来填充微调器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!