如何解决城市列表未根据 android 中州名的选择显示
您好,请在以下代码中选择州名。城市名称列表正在填充。但在选择州名称后,城市名称仅显示城市名称的最后一个元素。城市名称包含一个列表,但列表未按照州名称显示。根据我的邮递员回复显示州名,但未显示城市名称。
谁能帮助我哪里出错了。
if (response.isSuccessful()) {
Log.e("response",new Gson().toJson(response.body()));
GetStateMasterDataModel getStateMasterDataModel = response.body();
final List<StateMstrModel> getStateMasterDataModels = getStateMasterDataModel.getStateMstr();
for (StateMstrModel stateMstrModel : getStateMasterDataModels) {
StateNames = stateMstrModel.getState();
CityNames = stateMstrModel.getCity();
districtNames = stateMstrModel.getdistric();
StateMstrModel stateMstrModel1 = new StateMstrModel(StateNames,CityNames,districtNames);
stateDataList.add(stateMstrModel1);
// ArrayList<String> values=new ArrayList<String>();
hashSet = new HashSet<String>();
hashSet.addAll(stateNames);
stateNames.clear();
stateNames.addAll(hashSet);
stateNames.add(StateNames);
Collections.sort(stateNames,new Comparator<String>() {
@Override
public int compare(String s1,String s2) {
return s1.comparetoIgnoreCase(s2);
}
});
CityList.add(CityNames);
districtNames.add(districtNames);
final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
getApplicationContext(),R.layout.spinner_item,stateNames);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
state.setAdapter(spinnerArrayAdapter);
spinnerArrayAdapter.notifyDataSetChanged();
state.setonItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {
if(position+1>0){
String sp1= String.valueOf(state.getSelectedItem());
if(stateNames.contains(sp1)){
ArrayList<String> CityList=new ArrayList<>();
CityList.add(CityNames);
final ArrayAdapter<String> spinnerArrayAdapter1 = new ArrayAdapter<String>(
getApplicationContext(),CityList);
spinnerArrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerArrayAdapter1.notifyDataSetChanged();
city.setAdapter(spinnerArrayAdapter1);
}
}
}
@Override
public void onnothingSelected(AdapterView<?> parent) {
}
});
}
邮递员回复:
{
"Message": "State Master List","Status": true,"StateMstr": [
{
"Id": "1","State": "Maharashtra","distric": "Mumbai City","City": "Mumbai"
},{
"Id": "8","distric": "Pune","City": "Pune"
},{
"Id": "13","distric": "Nagpur","City": "Nagpur"
}
}]}
解决方法
仅显示城市名称的最后一个元素
因为您正在传递您所在城市 ArrayAdapter
中最后存储的城市名称变量。所以你需要传递城市名称列表
为每个循环创建一个数组列表
ArrayList<String> CityList=new ArrayList<>();
然后在每个循环的 ur 内的列表中添加您的城市名称
CityNames = stateMstrModel.getCity();
CityList.add(CityNames);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。