Сделайте тост при разборе данных из json

Мой файл JSON выглядит так: [{"Delay":5}] Мне нужно проверить, не равна ли Delay 0, а затем поместить ее в тост, например (Delay = 5), но когда я запускаю приложение, оно останавливается и ничего не показывает

    private void Affiche (){
        StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_WAITING,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONArray waiting = new JSONArray(response);

                            for (int i = 0; i < waiting.length(); i++) {
           JSONObject productObject = waiting.getJSONObject(i);
                                int Delay = productObject.getInt("Delay");
                                if ( Delay ==0) {

                                }else {
Toast.makeText(WaitingActivity.this, Delay, Toast.LENGTH_LONG).show();
}
                                }

                                }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                   Toast.makeText(WaitingActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });

        Volley.newRequestQueue(this).add(stringRequest);

Я ожидаю показать «Задержка = 5», но ничего не показал

Чему равно значение ответа?

Kristy Welsh 28.05.2019 19:57

Вы отладили до точки? Вы уверены, что слушатель (метод onResponse) когда-нибудь будет выполнен?

Sunchezz 28.05.2019 19:58
0
2
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если под «когда я запускаю остановку приложения» вы имеете в виду, что приложение дает сбой, то это, вероятно, потому, что вы пытаетесь показать int вместо String.
Метод makeText() принимает либо Int, либо CharSequence в качестве второго параметра, но int, который он принимает, относится к идентификатору ресурса. Итак, в вашем случае, поскольку ваш int не относится к идентификатору ресурса, вы можете преобразовать свою переменную Delay в String, чтобы отобразить ее в Toast.
Пример.

String delayString = "Delay = " + Integer.toString(Delay);
Toast.makeText(WaitingActivity.this, delayString, Toast.LENGTH_LONG).show();

Спасибо, теперь он показывает "5", но как я могу добавить к нему сообщение? Я хочу показать «Задержка = 5».

Alin lee 29.05.2019 02:19

Toast.makeText(WaitingActivity.this, "Delay = " + delayString, Toast.LENGTH_LONG).show(); Это сделает работу!

HyunJin 29.05.2019 03:15

Другие вопросы по теме