android - 如何使用 volley 将 JSON 响应加载到与从 android 发送的 city_id 相关的微调器中

标签 android json android-volley

我的 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/

相关文章:

java - 闹钟管理器在一周中的某一天设置闹钟

java - 如何计算索引json android的值

android - java.lang.NullPointerException 在 HttpGet httpGet = new HttpGet(url);

java - GSON 没有填充对象列表

android - Volley 的磁盘缓存内存不足问题

android - stopService 不会停止我的服务.... 为什么?

javascript - 如何在每次下载时依次获取 JSON 文件

android - JSONArray 文本必须以字符 1 处的 '[' 开头......这很完美,但它确实以 '[' 开头

android - Volley 的 DiskBasedCache 的性能问题

Android - Volley 无法将我的参数发送到服务器