Я делаю одну задачу, если после попадания 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;
}
}