在我的程序中,一个布尔值(称为metronomeOn)应该在单击一个按钮时设置为true,在单击另一个按钮时设置为false。我拥有的唯一类(MainActivity)实现了 Runnable。所以线程启动后,在run方法中,根据metronomeOn的值,应该会执行一段代码。我的问题是,在应该将metronomeOn 设置为true 的按钮的onClick 方法之后,metronomeOn 的值没有改变。
ButtonListeners(该方法在onCreate中调用):
public void ButtonListeners() {
bStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
metronomeOn = true;
}
});
bStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentBeatIndex = 1;
tvCurrentBeatIndex.setText("");
metronomeOn = false;
}
});
}
运行方法:
if (metronomeOn) {
tvBpm.setText("IN IF STATEMENT");
//other code...
}
我完全不知道为什么节拍器不切换值。我知道运行方法被执行,并且节拍器只在 onCreate 和 onDestroy 中改变。任何想法为什么这不起作用?提前致谢!!
编辑* * ** * ** * ** * ** * ** * ** * ** * ** * ** 我已经摆脱了 run 方法和 Runnable 类的实现,所以没有那里有问题,但节拍器仍然总是返回错误。
再次编辑* * ** * ** * ** * ** * ** * ** * ** * * 我不知道为什么或如何,但是在删除 Runnable 的东西并重新启动 Eclipse 之后,它现在可以工作了。MetronomeOn 改变价值!感谢所有给予建议的人!