Android загрузить данные Spinner с сервера

Я изучаю библиотеку Android volley. Я пытаюсь заполнить данные с сервера на spinner.
мой JSON:

{"data":{"Bangalore":["Painting","Carpentering","Plumbing","Electrical works"],"Hydrabad":["Plumbing"],"kochi":["Painting","Carpentering"]},"status":200}

Сейчас я стараюсь попасть только в Бангалор, гидрабад, Кочи в одном спиннере. При выборе города я хочу загрузить работу(покраска, сантехника и т.д..) в другой спиннер. Я не могу получить названия городов в spinner.

Мой код запроса залпа:

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONObject jo = response.getJSONObject("data");
                    name=jo.toString();
                    ids.add(name);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, ids));
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        rq = Volley.newRequestQueue(this);
        rq.add(jsonObjectRequest);

Пожалуйста, помогите мне..
Спасибо заранее……

1 ответ

  1. I am trying to get only Bangalore, hydrabad, kochi in One Spinner

    Все Бангалор, hydrabad, kochi,… является ключом в data JSONObjectкотором содержится JSONArrayкак значение.

    Чтобы показать все названия городов в одном Spinnerсначала нужно получить все названия городов из dataJSONObject как:

    JSONObject jo = response.getJSONObject("data");
    JSONArray cityNameJSONArray= jo.names(); 
    

    Теперь используйте cityNameJSONArrayJSONArray для отображения имен городов Spinner.