我想从 courseName 中获取所有值并用它来填充微调器:
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
final List<String> courses = new ArrayList<String>();
for (DataSnapshot courseSnapshot: dataSnapshot.getChildren())
{
String courseName = courseSnapshot.getValue(String.class);
courses.add(courseName);
}
Spinner spinnerCourse = findViewById(R.id.spinnerCourse);
ArrayAdapter<String> courseAdapter = new ArrayAdapter<String>(AddSubject.this,android.R.layout.simple_spinner_item, courses);
courseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCourse.setAdapter(courseAdapter);
}
}
最佳答案
你需要先清除你的列表,然后使用 clear()
方法绑定(bind)它
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s)
{
final List<String> courses = new ArrayList<String>();
courses.clear();
for (DataSnapshot courseSnapshot: dataSnapshot.getChildren())
{
String courseName = courseSnapshot.getValue(String.class);
courses.add(courseName);
}
Spinner spinnerCourse = findViewById(R.id.spinnerCourse);
ArrayAdapter<String> courseAdapter = new ArrayAdapter<String>(AddSubject.this,android.R.layout.simple_spinner_item, courses);
courseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCourse.setAdapter(courseAdapter);
}
}
关于java - 我的微调器在添加从 firebase 数据库中选择的多个值时被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656614/