android - 如何使用 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();
}
}
});
我在 run() 方法的 MyThread 类中调用 Volley-POST 方法。
我怎样才能解决这个问题?
解决方案
推荐阅读
- oracle - 使用行中的列创建 Oracle 视图
- python - 使用 Python OpenCV 从车牌图像中提取数字和字母
- c++ - c ++命名空间的奇怪行为
- ionic4 - ionic 4 侧边菜单不更新其内容
- angular - 类型'可观察的
' 缺少类型 'string[]' 的以下属性:length、pop、push、concat 和另外 25 个 - javascript - 如何在for循环内使用html和仅JavaScript在网格中显示图像(使用来自OMDb API的海报)?
- javascript - 在 HTML 中读取图像的样式
- c# - 使用 HangFire 启动实现接口的作业时如何使用自定义作业名称
- sap-cloud-sdk - 使用为自定义 odata 服务生成的 java vdm 更新价格后返回的结果为 null
- flutter - 无法使用 jiffy 和 flutter_localizations 因为不同版本的 intl