我的 android 代码中有 1 个城市微调器,我必须做的是,当我从城市微调器中选择城市时,相应城市微调器的 ID 应该转到服务器,并且根据该区域将显示在区域微调器中区域微调器应该依赖于 JSON 响应。对于城市微调器,我已经给出了硬编码字符串。
例如。每当我根据像学院路这样的区域从城市微调器中选择城市纳西克时,加拿大角应该显示在区域微调器中。
JSON 响应:
SEARCHED_AREA[{"area_name":"Panchavati"},{"area_name":"Ashok Stambh"}]
我试过的代码: 微调器 spinnerCustom= (微调器) findViewById(R.id.spinnerCustom);
ArrayList<String> cities = new ArrayList<String>();
cities.add("Amravati");
cities.add("Aurangabad");
cities.add("Kalyan Dombivali");
cities.add("Mumbai");
cities.add("Nashik");
cities.add("Navi Mumbai");
cities.add("Pune-Pimpri Chinchwad");
cities.add("Solapur");
cities.add("Thane");
CustomSpinnerAdapter customSpinnerAdapter=new CustomSpinnerAdapter(HomeActivity.this,cities);
spinnerCustom.setAdapter(customSpinnerAdapter);
spinnerCustom.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
city_id=position+1;
Toast.makeText(parent.getContext(),"id" +String.valueOf(city_id) , Toast.LENGTH_LONG).show();
registercityid();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}public void registercityid() {
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(HomeActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(HomeActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put(KEY_ID,String.valueOf(city_id));
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
谁能提供示例代码? 提前致谢。
最佳答案
下面是示例代码,试试吧....
public class CityDetailModel {
String cityName, cityID;
public CityDetailModel(String cityName, String cityID) {
this.cityName = cityName;
this.cityID = cityID;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getCityID() {
return cityID;
}
public void setCityID(String cityID) {
this.cityID = cityID;
}
}
现在将数据添加到您的 arrayList 中,如下所示:-
ArrayList<CityDetailModel> cities = new ArrayList<CityDetailModel>();
cities.add(new CityDetailModel("City1", "CityID 1")); // add appropriate city id according to your requirements
cities.add(new CityDetailModel("City2", "CityID 2"));
cities.add(new CityDetailModel("City3", "CityID 3"));
cities.add(new CityDetailModel("City4", "CityID 4"));
cities.add(new CityDetailModel("City5", "CityID 5"));
现在在 onItemSelected() 方法中,从您的列表中获取该城市的 ID,如下所示:-
Log.e("City ID==>>", cities.get(position).getCityID());
现在在您的服务调用中传递此城市 ID,您将获得区域响应。希望对你有帮助....
关于android - 如何使用 volley 将 JSON 响应加载到与从 android 发送的 city_id 相关的微调器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40838331/