首页 > 解决方案 > 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");
                            }
                        });
                    }
                });
            }

标签: androidandroid-button

解决方案


尝试在 onClick 方法中立即调用“setEnabled(false)”(完全删除 device1notConnected 布尔值和“if”检查)。在“onError”中调用“setEnabled(true)”,以便用户可以再试一次或其他。如果 onError 在后台线程上,则调用按钮上的 post 方法并提供执行“setEnabled(true)”的可运行对象


推荐阅读