0

タイマーを起動するボタンに問題があります。すべての if ステートメントを削除すると、正常に動作するため、タイマー コードに問題はありません。この同じコードは、8900、ストームなどを試した他のすべての電話で正常に機能します.

失敗して if ステートメントの最後まで実行されるのは 9800 だけです。

getLabel に変更はありますか?

私のコードは次のとおりです。

startbtn.setChangeListener(new FieldChangeListener() {
    public void fieldChanged(Field field1, int context) {
        /////sound file
        try {
            Manager.playTone(ToneControl.C4, 100, 50);
        } catch (MediaException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        if (startbtn.getLabel() == "START"){
            startbtn.setLabel("STOP!");
            startTimer();
        } else if (startbtn.getLabel() == "STOP!"){
            startbtn.setLabel("RESET");
            stopTimer();
        } else if (startbtn.getLabel() == "RESET"){
            dismiss();
            //// RESET SCREEN AFTER
        }
    }
});  

どこにも答えが見つからないので、誰かが助けてくれることを願っています。

4

1 に答える 1

2

str1.equals(str2)Javaでの文字列の正しい比較があり、通常は前提条件があるのではないかと心配しますstr1 != null

ただし、同様の場合には例外があります。定数を導入するだけです。

private static final String START_LABEL = "START!";
private static final String STOP_LABEL = "STOP!";
private static final String RESET_LABEL = "RESET";

そして、ifステートメントで定数を使用します。このような:

if (START_LABEL == startbtn.getLabel()) {}

ここここStringでJavaでの比較についての詳細。

あなたのアプリが英語のローカリゼーションだけを必要とすることを願っています。変数の命名にキャメルケース表記を使用すると、より読みやすくなります。

于 2012-08-08T08:41:05.700 に答える