Я застрял в проблеме, где я не могу понять, почему я не работаю. Мне нужно заполнить счетчик другим значением, я должен принять это значение с помощью 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);
}
}