Не получает Resposne при создании запроса с использованием залпа - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь сделать запрос к серверу, используя залп и проверить, возвращаемое значение содержит конкретное значение или нет.Это работает, когда я использую отдельный класс и вызываю из Mainactivity, используя намерение в onCreate.

Но я бы хотел сделать звонок вручную, когда кнопка нажата из фрагмента, но когда кнопка нажата, ничего не происходит.

Вот мой код:

 mCeload = (FloatingActionButton) view.findViewById(R.id.Update);
    mCeload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String url = "https://cmprc.edu.np/batch/update.json";
            StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    if(response != null ) {
                        boolean resp = response.contains("1");

                        if (!resp) {

                            Toast.makeText(getActivity(), "Contacts are Updated", Toast.LENGTH_SHORT).show();

                        } else {
                            Toast.makeText(getActivity(), "No Updates Availaible", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            }, new com.android.volley.Response.ErrorListener(){
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    volleyError.printStackTrace();
                }
            });

           Toast.makeText(getActivity(), "You clicked the Button", Toast.LENGTH_SHORT).show();

        }
    });

Я уверен, что кнопка нажата, так как я получаю последнее сообщение тост, но до этого ничего не происходит, и я не получаю тостбыл ли ответ положительным или отрицательным.

Также Как мне получить ответ в виде строки и сохранить в локальной базе данных, чтобы я мог сравнить сохраненное значение с новым, когда пользователь проверяет наличие обновлений, и если оба значения совпадают, то показываютТост доступных обновлений, а если нет, то показать доступные обновления.

Заранее спасибо.

1 Ответ

0 голосов
/ 21 апреля 2019

Добавьте ваш запрос в RequestQueue следующим образом:

final RequestQueue requestQueue = Volley.newRequestQueue(getActivity);
                String url = "https://cmprc.edu.np/batch/update.json";
                    // Initialize a new StringRequest
                    StringRequest stringRequest = new StringRequest(
                            Request.Method.GET,
                            url,
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                     if(response != null ) {
                        boolean resp = response.contains("1");

                        if (!resp) {

                            Toast.makeText(getActivity(), "Contacts are Updated", Toast.LENGTH_SHORT).show();

                        } else {
                            Toast.makeText(getActivity(), "No Updates 
                            Availaible", Toast.LENGTH_SHORT).show();
                        } } 

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

                    // Add StringRequest to the RequestQueue
                    requestQueue.add(stringRequest);
...