2013-04-02 55 views
1
的文本

有在if條件導致一些問題檢查的TextView結果檢查的TextView

的文字是這樣的代碼更解釋

times.xml

<TextView 
      android:id="@+id/tiMinutesView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center"    
      android:text="--" 
      android:textColor="#3134E8" /> 

TimesActivity.java

TextView minView;         
    minView = (TextView) v.findViewById(R.id.tiMinutesView); 

    if (minView.getText().toString().trim() != "--") { 

     Toast.makeText(TimesActivity.this, 
       "OK", 
       Toast.LENGTH_LONG).show(); 
    } else { 
     Toast.makeText(TimesActivity.this, 
       "NO", Toast.LENGTH_LONG) 
       .show(); 
    } 

現在它應該返回false和二張開NO,因爲它等於「 - 」實際上,但是它返回true,顯示OK

問題是什麼???

回答

2

始終使用equals()方法String比較。

if (!minView.getText().toString().trim().equals("--")) { 
.... 
} 

==用於比較對象引用。 equals()是用於比較價值的一個。

P.S: -有像數不勝數這裏@ SO問題,其中更詳細地解釋這一點。請參考它們以獲得更多清晰度。

+0

哦,不!的在同一瞬間!大聲笑!我早了2秒哈哈! – Nezam

+0

@Nezam - 沒有問題!讓我們來決定吧,乾杯! – SudoRahul

+0

不錯!它的工作現在..那是因爲我的PHP開發和新到Android 非常感謝:) –

2

你是Java的傢伙,所以相關的行更改爲:

if (minView.getText().toString().trim().equals("--")) 
    { 
    //write your code here. 
}... 
1

始終使用字符串值/對象的equals()方法比較字符串。

if(!minView.getText().toString().trim().equals("--")){ 

}.... 

這將比較值和minView.getText().toString().trim() != "--"這將比較兩個字符串對象

1

使用本

if (!minView.getText().toString().trim().equals("--") 

instread使用

if (minView.getText().toString().trim() != "--")