如何解决微调器值不更新
这是我的国家/地区微调器,在此我获取国家/地区 ID 并传入带有国家/地区代码的 ApiGetState 我正在获取状态列表,在获取状态列表后我想将其设置在状态微调器中,我已经完成了所有操作,但是如果我选择国家第一次它工作正常,但如果我改变国家,状态微调器不更新,我是否错过了这段代码中的某些内容?
country.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {
scountry = parent.getItemAtPosition(position).toString();
String cCode = scountry.substring(0,scountry.indexOf("-"));
countryCode = Integer.parseInt(cCode);
ApiGetStates(countryCode);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
我在这里从服务器设置了 StateSpinner 的值:-
public void onResponse(Call<StatesModel> call,Response<StatesModel> response) {
if (response.isSuccessful()){
StatesModel model = response.body();
List<StatesModel.StatesModelDetail> list = model.getData();
for (int i = 0; i < list.size(); i++){
stateData = list.get(i);
String stateName = stateData.getName();
String code = stateData.getId();
String finalname = code + "-" + stateName;
arrayList.add(finalname);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(),R.layout.simple_spinner_dropdown,arrayList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
state.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
解决方法
我做过这件事。只需在“ApiGetStates(countryCode);”之前清除数组列表并调用“adapter.notifyDataSetChanged();”根据 Sandeep Pareek,在“for 循环”之外。例如:-
arrayList.clear();
ApiGetStates(countryCode);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。