如何解决setCheckable不能与线程一起运行
你好吗?我正在开发一个应用程序,在该应用程序中我希望执行4个连续的音符,并在它们之间暂停1秒,因为我执行了此功能:
private void playSonidos() {
DesactivarBtn(false);
sonidoIndexA(true);
espera();
sonidoIndexB(true);
espera();
sonidoIndexC(true);
espera();
sonidoIndexD(true);
respuestaCorrecta = Integer.toString(indexA) + Integer.toString(indexB) +
Integer.toString(indexC) + Integer.toString(indexD);
System.out.println(respuestaCorrecta);
DesactivarBtn(true);
return;
}
espera();我用这段代码做到了:
private void espera() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
sonidoIndexA,B,C和D它们只是4种声音中的每一种,当我在设备上运行它时,这很完美,问题是我想使用此DisableBtn禁用此功能运行的按钮(false );它的代码是这样的:
private void DesactivarBtn(Boolean isActive) {
if (isActive == false) {
bottomEscuchar.setCheckable(false);
return;
} else {
bottomEscuchar.setCheckable(true);
return;
}
}
我正在使用的按钮是bottomnavigationview项,我希望在执行playSonidos()函数时,该按钮无法执行任何操作,只有在playSonidos()完成执行之前,这是可行的,因为如果我在函数运行时给按钮单击,它什么也不执行,但是一旦完成,它就会再次再现它,就好像它意识到我在某个时候再次触摸了该按钮,但我没有希望发生...有趣的是,如果我删除DisableBtn(true);如果它满足我的需要,问题是当playSonidos()完成执行时,显然该按钮已被禁用,我希望再次激活它,但它确实注册了playSonidos()期间进行的任何触摸事件。 这样,在单击该项目时,它调用了playSonidos():
escucharSecuencia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (repeatNoRepeat) {
case 0:
System.out.println("sigue activo");
playSonidos();
break;
case 1:
System.out.println("sigue activo");
repetirSonidos();
break;
}
repeatNoRepeat = 1;
System.out.println(respuestaCorrecta);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。