Как сделать сетевой вызов из адаптера recycler-view с помощью ToggleButton

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

Я получаю это исключение

Java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

Итак, я проверил этот ответ и создал класс, расширяющий класс Thread, и сделал в нем сетевой вызов, и вызвал его из адаптера

Но он все еще показывает ту же ошибку.

Я не понимаю, что мне нужно выполнить в основном потоке, а что в новом потоке.

Это вызов адаптера recycler-view


pdc_viewHolder.toggleButton_paymentStatus.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean toggleOn) {
                if (toggleOn) {
                    // Toggle on = PAID
                    // Change the color of background

 pdc_viewHolder.activity_dashboard_recyclerView_row_toggleButton_paymentStatus.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.shape_layout_toggle_button_dashboard_paid_state));

                   MyThread myThread = new MyThread(bankNameAdap, context);
                    myThread.start();

                } else if (!toggleOn) {
                    // Toggle off = PENDING
                     //Change the toggle button background 
 pdc_viewHolder.activity_dashboard_recyclerView_row_toggleButton_paymentStatus.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.shape_layout_toggle_button_dashboard_pending_state));


                     MyThread myThread = new MyThread(bankNameAdap, context);
                    myThread.start();

                }
            }
        });

и я вызываю метод Volley-POST в классе MyThread в методе run().

Как я могу это исправить?

да. Вы можете сделать с помощью интерфейса. Проверьте эту ссылку: Ссылка на сайт

Pratik Satani 29.01.2019 08:09

Можете ли вы поделиться своим фрагментом кода?

saxenarishav 29.01.2019 08:14

ошибка, которую вы получаете, означает, что вы пытались что-то сделать не в том потоке. Но никто не знает что.

Vladyslav Matviienko 29.01.2019 08:19
Редактировать вопрос с соответствующим кодом, который вызывает ошибку.
Letsintegreat 29.01.2019 08:22

я выложил код

Makarand 29.01.2019 08:51

Я попробовал ваш ответ, но не сработал @PratikSatani

Makarand 29.01.2019 08:52

С какой проблемой вы столкнулись, пытаясь ответить на мой вопрос?

Pratik Satani 29.01.2019 08:53

@PratikSatani У меня такое же исключение. bcz это то же самое, что и вызов метода в Activity непосредственно из адаптера. Он не имеет дело с потоками.

Makarand 29.01.2019 08:57

Сделайте одну вещь, используя runOnUIThread, чтобы вызвать ее activity.runOnUiThread(new Runnable() { public void run() { } });

Pratik Satani 29.01.2019 09:01

Это работа для вас?

Pratik Satani 29.01.2019 09:12

@PratikSatani нет, выдает ту же ошибку

Makarand 29.01.2019 09:14
0
11
270
0

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