2013-10-11 50 views
-1

我有以下代碼:if/else語句驗證問題

View.OnClickListener calcu = new View.OnClickListener() { 
    public void onClick(View v) { 
     double q; 
     String d = ""; 
     double factor = cpi[to]/cpi [from]; 
     DecimalFormat decimalFormat = new DecimalFormat("0.##"); 
     if (eNum.getText().toString().length() <= 0 || bFrom.getText() == "- Select a Year -" || bTo.getText() == "- Select a Year -") { 
      if (eNum.getText().toString().length() <= 0) { 
       d += "Enter Dollar Amount"; 
       eNum.setTextColor(Color.RED); 
      } 
      if (bFrom.getText() == "- Select a Year -") { 
       d += "Select a Year"; 
       bFrom.setTextColor(Color.RED); 
      } 
      if (bTo.getText() == "- Select a Year -") { 
       d += "Select a Year"; 
       bTo.setTextColor(Color.RED); 
      } 
     } 
     else { 
      dollarAmount = factor * Double.parseDouble(eNum.getText().toString()); 
      String value = Double.toString(dollarAmount); 
      if (value.charAt(value.length() - 2) == '.') { 
       value += "0"; 
      } 
      displayToast("Dollar: " + value); 

      if (cpi[to] != cpi[from]) { 
       double f, y; 
       if (cpi[to] > cpi[from]) { 
        f = cpi[to]/cpi [from]; 
        y = to - from; 
       } 
       else { 
        f = cpi[from]/cpi[to]; 
        y = from - to; 
       } 
       q = Math.pow(f, 1/y); 
       q = (q-1)*100.0; 
       q = Math.round(q*100.0)/100.0; 
       displayToast("Inflation: " + String.valueOf(decimalFormat.format(q))); 
      } 
     } 
    } 
}; 

displayToast()是顯示敬酒消息給用戶的功能。

eNumEditText

bFrombToButtons

我想要什麼樣的結果的onClick方法被激活:

  1. 如果eNum是空的,我想要做的文字顏色紅色。
  2. 如果bFrombTo按鈕文本是- Select a Year -,我想使文本顏色爲紅色。
  3. 如果#1和#2不是真的,則顯示Toasts。

現在,當我點擊時,什麼都沒有發生。如何修復上述代碼以正確工作?

+1

你的問題是什麼? –

+0

只是檢查,你setOnClickListener(calcu)? –

+4

1)比較字符串/對象時,使用equals()而不是==。 – kosa

回答

2

更改此:

bFrom.getText() == "- Select a Year -"

要這樣:

bFrom.getText().equals("- Select a Year -")

而同樣會去你的bTo.getText() == "- Select a Year -")線。

使用.equals()比較對象(例如字符串),併爲==

+0

謝謝。它解決了這個問題! – Si8

1

如果是,那麼你需要使用.equals比較字符串。

+0

是的,但其他人在一個小時前已經說過同樣的事情。 –

+0

正確。只是強調了他面臨的問題。 –

+0

@SachinM感謝您的回覆,我很感激。不要向戴夫牛頓付出任何代價! – Si8