EditText.getText()不起作用?

时间:2016-01-15 15:15:23

标签: java android if-statement android-edittext

关于我在if语句中使用的getText()。toString()方法,我有一个相当简单的问题。

基本上,我问用户一个问题。如果他们在相应的EditText中输入正确的答案,他们将继续下一个问题。如果没有,他们就会失去生命。如果他们的生命减少到0,他们将被送回游戏的开头。如果没有,他们必须重复这个问题。我在测试时遇到的问题是,在输入正确的答案后,在这种情况下“大西洋”,该方法正在执行,好像答案是错误的。任何人都可以帮忙吗?

PS我知道Else If是多余的,只是为了澄清目的。

代码:

    answerButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (answerText.getText().toString() == "Atlantic") {
                KrakonQ2();
            }
            else if (answerText.getText().toString() != "Atlantic")
            {
                thePlayer.setPlayerHP(thePlayer.getPlayerHP() - 20);

                if (thePlayer.getPlayerHP() <= 0)
                {
                    thePlayer.setPlayerPos(0);
                    setupControls();
                    RoomText.setText(thedungeon[thePlayer.getPlayerPos()].getName());
                    setupDirectionButtons();
                    thePlayer.setPlayerHP(100);

                }
                else
                {
                    KrakonQ1();
                }


            }

        }
    });

2 个答案:

答案 0 :(得分:2)

是的,您需要使用String.equals()

if (answerText.getText().toString().equals("Atlantic")) { 
       KrakonQ2(); 
   } 

==比较对象以查看它们是否相同。

答案 1 :(得分:0)

比较字符串时,必须使用equals(String)方法,即==运算符不起作用。 请尝试以下方法:

  answerButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        if (answerText.getText().toString().equals("Atlantic")) {
            KrakonQ2();
        }
        else if (! answerText.getText().toString().equals("Atlantic"))
        {
            thePlayer.setPlayerHP(thePlayer.getPlayerHP() - 20);

            if (thePlayer.getPlayerHP() <= 0)
            {
                thePlayer.setPlayerPos(0);
                setupControls();
                RoomText.setText(thedungeon[thePlayer.getPlayerPos()].getName());
                setupDirectionButtons();
                thePlayer.setPlayerHP(100);

            }
            else
            {
                KrakonQ1();
            }


        }

    }
});