简体   繁体   English

我的微调器被覆盖,同时添加了从Firebase数据库中选择的多个值

[英]my spinner is overwriting while adding multiple values selected from firebase database

I want to get all the values from the courseName and use it to fill the spinner: 我想从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);
  }
}

You need to clear your list first then bind it use clear() method like below 您需要先清除列表,然后再使用clear()方法将其绑定,如下所示

    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);
    } 
   }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM