2016-11-28 2 views
1

У меня есть 1 городский счетчик в моем коде Android, что мне нужно сделать, пока я выбираю город из города, где прячется идентификатор соответствующего города. на сервер, и в соответствии с этим область будет отображаться в области spinner, а счетчик строк должен зависеть от ответа JSON. Для городовой строки я дал строчную кодированную строку.Как загрузить ответ JSON в прядильщик, соответствующий city_id, отправить с android с помощью volley

например. Всякий раз, когда я выбираю город-нащик из города-спиннера в соответствии с тем, что в районе, таком как дорога в колледже, угол в канаде должен отображаться в области spinner. Ответ

JSON:

SEARCHED_AREA[{"area_name":"Panchavati"},{"area_name":"Ashok Stambh"}] 

Код, который я попробовал: Вертушка spinnerCustom = (Spinner) 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); 

} 

Может ли кто-нибудь указать образец кода? Спасибо заранее.

+0

Ваша цель не так ясна. –

ответ

2

ниже приведен пример кода, дайте ему попробовать ....

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 (метод) , введите идентификатор этого города из списка ниже: -

Log.e("City ID==>>", cities.get(position).getCityID()); 

Теперь передайте этот идентификатор города в свой служебный звонок, и вы получите ответ вашей области. Надеюсь, это поможет вам ....

2

Вы можете достичь этого следующим образом ... следуйте инструкциям и шагам по одному.

Я создал пример фильтрации данных счетчика из состояния в город. вы можете сделать это согласно вашему требованию.

1) сначала установили данные о состоянии в адаптере для счетчика в oncreate() mehtod.

2) создайте метод, содержащий данные города, а также установив адаптер-преобразователь города. Этот метод фактически обновляет ваш счетчик в соответствии с выбранным значением выбранного счетчика состояния. (В вашем случае вы можете проанализировать данные json здесь и установить в адаптер).

private void setCity() { 

    // String array that having city data. 
    String City_gj[] = {"Ahmedabad", "Vadodara", "Surat", "Rajkot"}; 
    String City_mh[] = {"Mumbai", "Pune", "Lonavala"}; 
    String City_rj[] = {"Udaipur", "jaipur", "Bikaner", "jaisalmer"}; 

    // here sp_state is my state spinner. I' getting current selected state value and according to it i am setting my city spinner adapter. 
    if (sp_state.getSelectedItem().equals("Gujarat")) { 
     ArrayAdapter Adpt_City = new ArrayAdapter(this, R.layout.spinner_textview, City_gj); 
     //sp_city is my city spinner. 
     sp_city.setAdapter(Adpt_City); 
    } 

    if (sp_state.getSelectedItem().equals("Maharastra")) { 
     ArrayAdapter Adpt_City = new ArrayAdapter(this, R.layout.spinner_textview, City_mh); 
     sp_city.setAdapter(Adpt_City); 
    } 

    if (sp_state.getSelectedItem().equals("Rajasthan")) { 
     ArrayAdapter Adpt_City = new ArrayAdapter(this, R.layout.spinner_textview, City_rj); 
     sp_city.setAdapter(Adpt_City); 
    } 
} 

3) наконец, здесь в onCreate() mehthod просто сгенерировать состояние вращателя, как у слушателя следующий и установить этот setCity() метод в onItemSelected.

sp_state.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

      setCity(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 
Смежные вопросы