android - android禁用按钮不起作用
问题描述
我正在尝试禁用该onsucceed()
方法上的按钮。但是我尝试了所有可能的选项,例如button.setVisibility()
,button.setEnabled()
但没有任何效果。根本原因可能是什么?
这是我的代码:
if(device1notConnected) {
scanneddevice1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
if(device1notConnected==false)
scanneddevice1.setClickable(false);
device1.connect(new DeviceConnectCallback() {
@Override
public void onSucceed(Device device1, DeviceConnectResult result) {
device1notConnected = false;
Log.d(TAG, "The connection is successful");
Toast.makeText(getApplicationContext(), "The connection is successful", Toast.LENGTH_SHORT).show();
// The connection is successful...
}
@Override
public void onError(Device device, DeviceCallbackException e) {
Log.d(TAG,"error");
}
});
}
});
}
解决方案
尝试在 onClick 方法中立即调用“setEnabled(false)”(完全删除 device1notConnected 布尔值和“if”检查)。在“onError”中调用“setEnabled(true)”,以便用户可以再试一次或其他。如果 onError 在后台线程上,则调用按钮上的 post 方法并提供执行“setEnabled(true)”的可运行对象
推荐阅读
- praw - PRAW:Reddit API 返回 403 Forbidden
- react-native - React-Native 中的新屏幕直到安装后一天才在真实设备上加载
- swift - 有没有办法为滑块定义离散步骤?
- spring - Spring JPA - 枚举的元素集合未正确映射到表:关系“...”的列“...”不存在
- mysql - 如何在 SQL 中使用 AVG 函数进行比较?
- vim - 在每个数字中插入减号
- blazor - Blazor 如何将外部组件事件添加到组件?
- vue.js - VueJs 3.0 NavBar 跨路线不粘
- reactjs - NextJS 页面仅在脚本执行后在浏览器中显示页面,尽管具有 defer 属性
- flutter - 如何在颤动中从文件路径播放视频