在我的程序中,一個布爾值(稱爲metronomeOn)應該在單擊一個按鈕時設置爲true,而在單擊不同按鈕時爲false。我擁有的唯一類(MainActivity)實現了Runnable。所以在線程開始之後,在run方法中,根據metronomeOn的值,它應該執行一段代碼。我的問題是,在應該將metronomeOn設置爲true的按鈕的onClick方法之後,metronomeOn的值不會改變。Android:布爾值不變?
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;
}
});
}
run方法:
if (metronomeOn) {
tvBpm.setText("IN IF STATEMENT");
//other code...
}
我完全不知道爲什麼metronomeOn未切換值。我知道run方法會被執行,而且節拍器只會在onCreate和onDestroy中被更改。任何想法爲什麼這不起作用?提前致謝!!
編輯* * ** * ** * ** * ** * ** * ** * ** * ** * ** 我已經擺脫了運行方法和Runnable類的實現,所以這裏沒有問題,但節拍器仍然總是返回false。
再次編輯* * ** * ** * ** * ** * ** * ** * ** * * 我不知道爲什麼或如何,但刪除Runnable的東西,並重新啓動Eclipse後,它現在的作品。 MetronomeOn改變價值!感謝所有給予建議的人!
你能記錄並確保調用「ButtonListeners」嗎? (你可以將pastebin.com放在你的整個班上。)'活動實現了Runnable'聞起來很臭。 – ataulm
你可以放置你已經聲明布爾值的代碼嗎? – JNL