我有一個簡單的if語句的問題,我不太清楚爲什麼。我有一個edittext框和一個按鈕,當用戶在edittext中輸入一個值然後按下按鈕時,無論輸入到框中的什麼都被轉換爲字符串並存儲在一個變量中,這個變量就會顯示在一個吐司。現在,它的工作原理非常好,但是我希望它只在某個值被輸入到編輯框中時纔會顯示,但是當我放入一個if語句來驗證它時,它似乎完全忽略了if語句並且什麼都不做。它不會導致任何錯誤,但即使輸入了正確的字符串,也會停止顯示任何吐司。我確信這是簡單的,但我似乎無法解決。如果有人能夠弄清楚爲什麼這樣做,那將是非常好的。下面
代碼:
工作代碼時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」)'而不是 – rocketboy
使用.equals()或.equalIgonreCase()當你比較兩個字符串。 – 2013-08-21 08:50:19