Я создал класс POJO и установил ответ json на него. Все работает нормально. Проблема в том, что когда я посылаю идентификатор в api, он всегда отправляет первый идентификатор элемента счетчика. PS в отладчике, когда я устанавливаю значение в классе модели, он меняется, это означает, что цикл for работает нормально, но когда я получаю из класса модели, он всегда отправляет первый идентификатор или элемент счетчика, или если я получаю модель формы значения в цикле, он отправляет идентификатортретий элемент, который является последним элементом в счетчике. Вот код, в котором я получаю данные из api categoryid - строка, в которой я получаю значение из класса модели:
StringRequest strReq = new StringRequest(Request.Method.POST,
Constant.URL_VEHICLE_CATEGORY, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response.toString());
try {
JSONObject responseObj = new JSONObject(response);
JSONArray dataArray = responseObj.getJSONArray("data");
driverCarCategory.clear();
for (int i = 0; i < dataArray.length(); i++) {
DriverCarCategory objItem = new DriverCarCategory();
JSONObject dataobj = dataArray.getJSONObject(i);
objItem.setName(dataobj.getString("name"));
objItem.setId(dataobj.getString("id"));
driverCarCategory.add(objItem);
}
for (int i = 0; i < driverCarCategory.size(); i++) {
carCategory.add(driverCarCategory.get(i).getName());
categoryID = driverCarCategory.get(i).getId();
}
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(mContext,
android.R.layout.simple_spinner_item, carCategory);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);// Set the custom adapter to the spinner
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spinnerItem = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
} catch (JSONException e) {
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
}
}) {
/**
* Passing user parameters to our server
* @return
*/
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("userID", driverUserID);
params.put("sessionID", driverSessionID);
Log.e(TAG, "Posting params: " + params.toString());
return params;
}
};
// Adding request to request queue
MyApplication.getInstance().addToRequestQueue(strReq);
}
Ответ Json:
{ "data": [
{
"id": "13dsd",
"name": "ECO",
"fairPerKm": "20",
"minimumFair": "150",
"createdDate": "3423423",
"modifiedDate": "23423432"
},
{
"id": "34dd",
"name": "Standard",
"fairPerKm": "25",
"minimumFair": "200",
"createdDate": "34234233434",
"modifiedDate": "23423432"
},
{
"id": "dsf44",
"name": "Premium",
"fairPerKm": "30",
"minimumFair": "250",
"createdDate": "32423423",
"modifiedDate": "24234234"
}
],