Как получить доступ к определенному массиву объектов, нажав кнопку - PullRequest
0 голосов
/ 30 мая 2018

У меня есть две кнопки изображений, и мой ответ JSON представляет собой массив объектов, и я хочу получить доступ к обоим объектам один за другим, нажав.Делая это, я получаю только вторую позицию, но я хочу, чтобы при нажатии первой кнопки я хотел первый объект, а для второй кнопки я хочу второй объект.

При разборе данных я получаю только вторую позицию, объект светлого типатолько.

final String potentialId = SitesUtil.getInstance().getSelectedPotentialId();

String urlOne = UrlUtility.getActionUrl(potentialId, cameraId);
RequestQueue requestQueue = Volley.newRequestQueue(getContext());
final StringRequest stringRequest = new StringRequest(Request.Method.GET, urlOne, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        Gson gson = new Gson();
        ActionButton[] actionButton = gson.fromJson(response, ActionButton[].class);
        for (ActionButton actionButton1 : actionButton) {
            getOnUrl = actionButton1.getOnUrl();
            getOffUrl = actionButton1.getOffUrl();
            getType = actionButton1.getType();
            message = actionButton1.getOnSuccessMessage();
        }
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
});
requestQueue.add(stringRequest);

Код ответа get:

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.imageButton:
            if (getType.equals("Strobe")) {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, getOnUrl, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
                requestQueue.add(stringRequest);
            }
            break;
        case R.id.imageButton2:
            if (getType.equals("Light")) {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, getOnUrl, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
                requestQueue.add(stringRequest);
            }
            break;
    }
}

Мой ответ JSON:

[
    {
        "id": 28248,
        "cameraId": 19316,
        "onUrl": "",
        "offUrl": "",
        "statusUrl": "",
        "type": "Strobe",
        "statusOnMessage": "P6 = on",
        "statusOffMessage": "P6 = off",
        "onSuccessMessage": "P6 = on",
        "offSuccessMessage": "P6 = off"
    },
    {
        "id": 28844,
        "cameraId": 19316,
        "onUrl": "",
        "offUrl": "",
        "statusUrl": "",
        "type": "Light",
        "statusOnMessage": "P2 = on",
        "statusOffMessage": "P2 = off",
        "onSuccessMessage": "P2 = on",
        "offSuccessMessage": "P2 = off"
    }
]
...