Я хочу создать ArrayList с динамическим индексом c, не начинающимся с 0 - PullRequest
0 голосов
/ 01 февраля 2020
 public void jsonParse(){
    jsonResArray = new ArrayList< >();
    String url = "my-api-url";
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new 
        Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                JSONArray jsonArray = response.getJSONArray("data");
                if(jsonArray.length()!=0) {
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        int id =Integer.parseInt(jsonObject.getString("service_id"));
                        **jsonResArray.add(id, jsonObject.getString("service_name"));**
                        }}
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(getBaseContext() , e.toString() , Toast.LENGTH_SHORT).show();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getBaseContext(),error.getMessage(),Toast.LENGTH_SHORT).show();
        }
    });
    mQueue.add(request);
}

Я хочу создать динамический c индекс, так как я хочу сохранить имя службы для его идентификатора в строковом массиве, но это дает мне индекс из bp Заранее спасибо

1 Ответ

1 голос
/ 01 февраля 2020

Используйте Map<Integer, String> вместо ArrayList<String>.

...