切换按钮状态不变

Toggle buttons state not changing

对于 nOOb 很抱歉,但我坚持我认为是一段简单的代码。

当 2 个切换按钮的状态更改为打开时,请等待几秒钟并将其状态切换为关闭。两个按钮都有 textOn="On" 和 textOff="Off"。以下代码放置在 tbToggle1 和 tbToggle2 的 OnClickListeners 中。

  tbToggle1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            if (tbToggle1.isChecked() & tbToggle2.isChecked()) {
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                tbToggle1.setChecked(false);
                tbToggle2.setChecked(false);
            }
  });

按下 tbToggle1(变为 "On")然后按下 tbToggle2 - 两个按钮的状态在 3 秒后变为 "Off"。在更改为 "Off".

之前,我需要 tbToggle2 更改为 "On" 3 秒

是 UI 线程问题还是什么?谢谢你的帮助。

您正在 UI 线程上调用 Thread.sleep,这绝不是一个好主意。

试试这个:

tbToggle1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        if (tbToggle1.isChecked() & tbToggle2.isChecked()) {
            tbTogggle1.postDelayed(new Runnable() {
                @Override
                public void run() {
                    tbToggle1.setChecked(false);
                    tbToggle2.setChecked(false);
                }
            }, 3000);
        }
});