Цикл json объект и анализ данных в спиннер не работает - PullRequest
0 голосов
/ 27 октября 2019

Я застрял в проблеме, где я не могу понять, почему я не работаю. Мне нужно заполнить счетчик другим значением, я должен принять это значение с помощью JsonObjectRequest (Volley) на ответ JSONObject, который я даю. Json в ответе вставлен ниже, мне нужно взять и заполнить счетчик «name», но мне нужно также, чтобы, когда он щелкает по имени, он давал другое «id значение тоже»

Ответ JSONObject:

{
"count": 2,
"0": {
    "Distributore Information": {
        "id": "4",
        "name": "Colonnina 1",
    }
},
"1": {
    "Distributore Information": {
        "id": "5",
        "name": "Colonnina 2",
    }
}
}

Я так и думал, чтобы создать класс pojo и использовать его для принятия обоих значений. Проблема в том, что я не могу понять, как зациклить объект json для этой ситуации:

Вот что я написал:

 private void getInfoColonnina(){
    String url = "https://apiapiapiapi_module_blablabla_json";
    final SharedPreferences myPref = getSharedPreferences("loginPref", MODE_PRIVATE);
    final SharedPreferences.Editor myPreff = myPref.edit();

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    JsonObjectRequest stringRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            MaterialSpinner spinner = (MaterialSpinner) findViewById(R.id.spinner);

            try {
                for (int i = 0; i < response.length(); i++) {
                    --- WHAT I HAVE TO WRITE HERE --
                    JSONObject infoDistributore = jsonObject.getJSONObject("Distributore Information");
                    LitriColonnina = infoDistributore.getString("litriiniziocolonna");
                    id_distributore = infoDistributore.getString("id_distributore");
                    NomeDistributore = infoDistributore.getString("NomeDistributore");

                    final DistrBean distrTest = new DistrBean(NomeDistributore, id_distributore, LitriColonnina);

                    spinner.setItems(distrTest.getNomeDistributore());

                    spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
                        @Override
                        public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
                            Toast.makeText(InizioTurnoActivity.this, distrTest.getIdDistributore(), Toast.LENGTH_SHORT).show();
                            myPreff.putString("id_distributore", distrTest.getIdDistributore());
                            myPreff.commit();
                        }
                    });
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            tvProgressivo.setText(LitriColonnina);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
            Toast.makeText(InizioTurnoActivity.this, "CHIAMATA INFOCOLONNINA FALLITA", Toast.LENGTH_SHORT).show();
        }
    });
    requestQueue.add(stringRequest);
    }
}
...