关于我在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();
}
}
}
});
答案 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();
}
}
}
});