Как изменить цвет изображения через URL после возвращения во Фрагмент - PullRequest
0 голосов
/ 28 июня 2018

Я делаю одну задачу, если после попадания URL-адреса в onCreate, после этого я собираюсь сохранить все URL-адреса в базе хэш-карт объекта при нажатии. Я получаю доступ к определенному объекту и он работает нормально. Но после состояния, если я нажму кнопку «Назад» и вернусь снова во фрагменте статистики URL, если состояние только как любое предложение? Мой ответ JSON:

[
    {
        "id": 1404,
        "cameraId": 1184,
        "onUrl": "",
        "offUrl": "",
        "statusUrl": "",
        "type": "Strobe",
        "statusOnMessage": "P1 = on",
        "statusOffMessage": "P1 = off",
        "onSuccessMessage": "P1 = on",
        "offSuccessMessage": "P1 = off"
    },
    {
        "id": 1405,
        "cameraId": 1184,
        "onUrl": "",
        "offUrl": "",
        "statusUrl": "",
        "type": "Light",
        "statusOnMessage": "P2 = on",
        "statusOffMessage": "P2 = off",
        "onSuccessMessage": "P2 = on",
        "offSuccessMessage": "P2 = off"
    }
]

** после доступа к этому URL я сохраняю все данные в хэш-карте и получаю доступ к URL-адресу при событии щелчка, но после того, как возвращаюсь снова, тот же фрагмент возвращается только в состоянии предварительного просмотра ** код:

private void getActionURl() {
    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();
            try {
                ActionButton[] actionButton = gson.fromJson(response, ActionButton[].class);
                for (ActionButton actionButton1 : actionButton) {
                    actionButtonMap.put(actionButton1.getType(), actionButton1);


                }
            } catch (Exception e) {
                e.printStackTrace();
            }


        }

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

        }
    });
    requestQueue.add(stringRequest);

}@Override
public void onClick(View v) {

    switch (v.getId()) {

        case R.id.imageButton:


        /*  final  ActionButton*/
            btnConfig = actionButtonMap.get("Strobe");
            if (btnConfig == null) {

                Toast.makeText(getContext(), "Sensor Not Available", Toast.LENGTH_SHORT).show();
                return;
            }

        {
            if (isStrobe) ----> its local Boolean value{
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfig.getOnUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {


                        try {
                            Toast.makeText(getContext(), btnConfig.getOnSuccessMessage(), Toast.LENGTH_SHORT).show();

                            isStrobe = false;

                            imageButton.setImageResource(R.drawable.ic_alarm);
                        } catch (Exception e) {
                            e.printStackTrace();

                        }


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

                    }
                });
                requestQueue.add(stringRequest);
            } else {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfig.getOffUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        Toast.makeText(getContext(), btnConfig.getOffSuccessMessage(), Toast.LENGTH_SHORT).show();
                        imageButton.setImageResource(R.drawable.ic_alarm_second);
                        isStrobe = true;
                        Utils.saveToSharedPreferenceBoolean("isStrobe", isStrobe);

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

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

        }
        break;
        case R.id.imageButton2:
            final ActionButton btnConfigOne = actionButtonMap.get("Light");
            if (btnConfigOne == null) {
                /*imageButtonOne.setVisibility(View.GONE);*/
                Toast.makeText(getContext(), "Sensor Not Available", Toast.LENGTH_SHORT).show();
                return;
            }


            if (isLight) {

                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfigOne.getOnUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        Toast.makeText(getContext(), btnConfigOne.getOnSuccessMessage(), Toast.LENGTH_SHORT).show();

                        isLight = false;

                        imageButtonOne.setImageResource(R.drawable.ic_light_bulb);
                        Utils.saveToSharedPreferenceBoolean("isLight", isLight);

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getActivity(), "Something went wrong", Toast.LENGTH_SHORT).show();
                    }
                });
                requestQueue.add(stringRequest);
            } else {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfigOne.getOffUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(getContext(), btnConfigOne.getOffSuccessMessage(), Toast.LENGTH_SHORT).show();

                        isLight = true;
                        imageButtonOne.setImageResource(R.drawable.ic_bulb_second);
                        //Utils.saveToSharedPreferenceBoolean("isLight", isLight);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getActivity(), "Something went wrong", Toast.LENGTH_SHORT).show();
                    }
                });
                requestQueue.add(stringRequest);
            }

            break;
        case R.id.imageButton3:
            final ActionButton btnConfigMotion = actionButtonMap.get("Motion");
            if (btnConfigMotion == null) {
                /*imageButtonTwo.setVisibility(View.GONE);*/
                Toast.makeText(getContext(), "Sensor Not Available", Toast.LENGTH_SHORT).show();
                return;
            }

            if (isMotion) {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfigMotion.getOnUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(getContext(), btnConfigMotion.getOnSuccessMessage(), Toast.LENGTH_SHORT).show();
                        isMotion = false;
                        imageButtonTwo.setImageResource(R.drawable.ic_motion_sensor);


                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getActivity(), "Something went wrong", Toast.LENGTH_SHORT).show();
                    }
                });
                requestQueue.add(stringRequest);
            } else {
                RequestQueue requestQueue = Volley.newRequestQueue(getContext());
                StringRequest stringRequest = new StringRequest(Request.Method.GET, btnConfigMotion.getOffUrl(), new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(getActivity(), btnConfigMotion.getOffSuccessMessage(), Toast.LENGTH_SHORT).show();
                        isMotion = true;
                        imageButtonTwo.setImageResource(R.drawable.ic_motion_sensor_seocond);

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getActivity(), "Something went wrong", Toast.LENGTH_SHORT).show();
                    }
                });
                requestQueue.add(stringRequest);
            }
            break;
    }
}
...