3

現在、さまざまなオプションを使用して Android アプリケーションを作成しています。オプションの 1 つは、デフォルトで「アクティブ化」と表示されるボタンを用意することです。アプリケーションが実行されている場合、それをクリックすると「無効」に変更され、もう一度クリックすると「アクティブ」に変更されます。私がしなければならないのは、文字列変数を使用して.getTextを実行し、この変数をifステートメントで使用することだけだと思いますが、私の条件のいずれにも反応していないようです...

        final Button button = (Button) findViewById(R.id.bSensor);


    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click

            String buttonText = button.getText().toString();    
            if (buttonText == "@string/Disable") {
                button.setText(R.string.Enable);
            }
            else if (buttonText == "@string/Enable"){
                button.setText(R.string.Disable);
            }

        }
    });

手伝ってくれてありがとう

フィジック

4

2 に答える 2

2

Java で文字列を比較するときは、== 演算子を使用しないでください。 ソース

文字列の .equals() メソッドを使用するか、グローバルなブール状態フラグを保持して、設定されている値を決定する必要があります。これにより、アクティブか無効かを判断する必要があるたびに文字列比較を行う必要がなくなります。

于 2012-11-08T19:46:54.893 に答える
1

.equals文字列を比較するために使用します。@String/これはボタンが表示するものの一部ではないため、プレフィックスは必要ありません。

final Button button = (Button) findViewById(R.id.bSensor);

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click

        String buttonText = button.getText().toString(); 

        if (buttonText.equals(getResources().getText(R.string.Disable)) {
            button.setText(R.string.Enable);
        }
        else if (buttonText.equals(getResources().getText(R.string.Enable)){
            button.setText(R.string.Disable);
      }

    }
});
于 2012-11-08T19:51:34.093 に答える