Как отфильтровать второй элемент Spinner на основе выбора первого элемента Spinner - PullRequest
0 голосов
/ 25 февраля 2019

Я выполняю фильтрацию для фильтрации списка студентов.Есть два блесны для фильтра - отдел и класс.Когда активность открыта, она загрузит все имя отдела и класса с сервера.до сих пор все отлично работаетТеперь я хочу, если пользователь выберет любой отдел, он будет фильтровать элементы класса Spinner.У меня есть отдельный модельный класс и массив для обоих спиннеров.В модели классов у меня есть название отдела, поэтому, используя его, я хочу показать только те классы, которые связаны с выбранным отделом.

ArrayList<ClassModel> listClass = new ArrayList<>();
ArrayList<DepartmentModel> listDepartment = new ArrayList<>();

ArrayAdapter<ClassModel> adapterClass;
ArrayAdapter<DepartmentModel> adapterDepartment;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_student_filter);

adapterClass = new ArrayAdapter<ClassModel>(this,android.R.layout.simple_spinner_item,listClass);
    adapterDepartment = new ArrayAdapter<DepartmentModel>(this,android.R.layout.simple_spinner_item,listDepartment);
    adapterClass.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    adapterDepartment.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spnClass.setAdapter(adapterClass);
    spnDepartment.setAdapter(adapterDepartment);

    listDepartment.add(new DepartmentModel("NA","View All"));
    listClass.add(new ClassModel("NA","View All","View All"));

    GetDepartment();
    GetClass();

     spnDepartment.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String dept_name = listDepartment.get(position).getDept();

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
 }

  private class ClassModel{
    String id;
    String std;
    String dept;

    public ClassModel(String id, String std,String dept) {
        this.id = id;
        this.std = std;
        this.dept = dept;
    }

    public String getId() {
        return id;
    }

    public String getStd() {
        return std;
    }

    public String getDept() {
        return dept;
    }

    @NonNull
    @Override
    public String toString() {
        return this.std;
    }
}

private class DepartmentModel{
    String id;
    String dept;

    public DepartmentModel(String id, String dept) {
        this.id = id;
        this.dept = dept;
    }

    public String getId() {
        return id;
    }

    public String getDept() {
        return dept;
    }

    @NonNull
    @Override
    public String toString() {
        return this.dept;
    }
}
...