【发布时间】:2020-11-15 02:25:59
【问题描述】:
我已经思考了好几天了,我需要帮助。我在查看器中有 2 个片段。尽管提供了不同的数据,但它们都显示相同的值。
Link to image 片段 A 具有与片段 B 相同的国家/地区的微调器下拉列表。片段 A 应该在选择国家/地区时显示医院列表,片段 B 应该根据所选国家显示学校列表。
问题 当我在 Fragment A 中选择一个国家时,我会在 Fragment A 中获得医院列表。当我滑动到 Fragment B 时,我发现应该在 A 中显示的医院列表。当我在 B 中选择一个国家/地区时,列表会刷新,我会得到应有的学校列表,但是当我再次滑回片段 A 时,我会找到相同的学校列表,而不是之前选择的医院列表。我正在使用带有数据绑定的 dagger2。
下面的代码描述了一种场景,但它们基本相同,只是适配器不同,布局也不同。
代码
private void initRecyclerview() {
binding.rvSchools.setHasFixedSize(true);
adapter = new SchoolsAdapter(getContext());
binding.rvSchools.setLayoutManager(new LinearLayoutManager(getContext()));
binding.rvSchools.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
private void countries() {
viewModel.getCountries().removeObservers(getViewLifecycleOwner());
viewModel.getCountries().observe(getViewLifecycleOwner(), new Observer<Resource<List<Countries>>>() {
@Override
public void onChanged(Resource<List<Countries>> countriesList) {
switch (countriesList.status) {
case SUCCESS:
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(getApplicationContext,
R.layout.simple_spinner_item, countriesList);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
binding.spinner.setAdapter(spinnerAdapter);
spinnerAdapter.notifyDataSetChanged();
break;
}
}
});
binding.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String country = countriesList.get(position);
schools(country);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
}
private void schools(String country) {
viewModel.getSchoolsHospitals(country, "School").removeObservers(getViewLifecycleOwner());
viewModel.getSchoolsHospitals(country, "School").observe(getViewLifecycleOwner(), new Observer<Resource<List<SchoolsHospitals>>>() {
@Override
public void onChanged(Resource<List<SchoolsHospitals>> schoolsList) {
switch (schoolsList.status) {
case SUCCESS:
binding.setSchools(schoolsList.data);
}
}
});
}
【问题讨论】:
标签: android android-fragments data-binding android-viewpager dagger-2