修改按钮 - if语句中的文本

时间:2012-11-08 19:07:27

标签: android button sdk

我目前正在创建一个具有不同选项的Android应用程序。其中一个选项是有一个按钮,默认显示“激活”。当应用程序运行时,单击它会将其更改为“禁用”,然后再次单击时“激活”。我相信我所要做的就是.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);
            }

        }
    });

感谢您的帮助

Phyzikk

2 个答案:

答案 0 :(得分:2)

在比较Java中的字符串时,不应使用==运算符。 Source

您应该使用字符串的.equals()方法,或者您可以保留一个全局布尔状态标志来确定设置的值。这样,每次需要确定它是否处于活动状态或禁用时,您都不需要进行字符串比较。

答案 1 :(得分: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);
      }

    }
});
相关问题