【发布时间】:2013-08-21 08:48:16
【问题描述】:
我遇到了一个简单的 if 语句的问题,我不太清楚为什么。我有一个edittext框和一个按钮,当用户在edittext中输入一个值然后按下按钮时,输入到框中的任何内容都将转换为字符串并存储在一个变量中,然后这个变量显示在一个toast中.现在这工作得很好,但我希望它只显示某个值是否输入到编辑框中,但是当我输入一个 if 语句来验证这一点时,它似乎完全忽略了 if 语句并且什么都不做。它不会导致任何错误,但即使输入了正确的字符串,它也会停止显示任何 toast。我确定这很简单,但我似乎无法解决。如果有人能弄清楚它为什么这样做,那就太好了。
以下代码:
注释掉 if 语句时的工作代码:
saveBtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Global.controlNum = inputTxt1.getText().toString();
// if((Global.controlNum == "1")||(Global.controlNum == "2" )){
Toast toast= Toast.makeText(SettingsScreen.this,"hello " + Global.controlNum, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, -100);
toast.show();
// }
}
});
如果引入 if 语句,那么它什么也不做:
saveBtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Global.controlNum = inputTxt1.getText().toString();
if((Global.controlNum == "1")||(Global.controlNum == "2" )){
Toast toast= Toast.makeText(SettingsScreen.this,"hello " + Global.controlNum, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, -100);
toast.show();
}
}
});
【问题讨论】:
-
controlNum 是一个字符串,应始终使用
equals()或equalsIgnoreCase()方法进行比较。 -
改用
Global.controlNum.equals("1") -
在比较两个字符串时使用 .equals() 或 .equalIgonreCase()。
-
不!不!!又不是
==.. -
@rocketboy 最好是
"1".equals(Global.controlNum)。
标签: java android string button if-statement