以编程方式更改开关的状态

时间:2018-11-30 01:22:37

标签: android

我有一个开关,可以通过在云上发送请求来启用/禁用硬件上的某些功能。 我需要以编程方式并且仅以编程方式更改开关的状态。但是,状态不会改变,除非交换机从硬件得到响应,告知请求已应用。 我尝试通过使用onCheckedChangeListener发送请求来进行尝试,但是当用户滑动手柄时,它会向前和向后移动。然后再次转发,当它收到响应时,即使用户尝试拖动它,也不应移动该处理程序,除非它收到响应。

这是我的代码:

mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(!doNotChange) {
                mPresenter.sendEnableRequest(isChecked);
                mySwitch.setChecked(!isChecked);
            }
            doNotChange = false;
        }
    });

然后,当我收到响应时,如果请求成功,我将更改开关的状态。

void onResponseReceieved() {
    doNotChange = true;
    mySwitch.setChecked(isChecked);
}

0 个答案:

没有答案