Ale*_*vín 10 arrays android spinner firebase firebase-realtime-database
我的数据库安排如下:
我想从areaName获取所有值作为字符串列表或任何形式的列表,并使用它来填充Spinner.我得到的问题是它只检索最后一个值(在本例中为"纽约").这是我的实际代码:
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) {
}
});
Run Code Online (Sandbox Code Playgroud)
Jav*_*gas 24
我不测试该代码,但或多或少,这是你必须做的:
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) {
}
});
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助!
问候.
归档时间: |
|
查看次数: |
16779 次 |
最近记录: |