2014-03-26 246 views
0

我想製作一個腳本,將用戶輸入與另一個字符串進行比較。問題在於我的if語句。我沒有收到錯誤,但總是返回「else」語句中的結果。下面是代碼:如果語句只返回來自「else」語句的結果

String [] lessons_titles = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","30","40","50","60","70","80","90"}; 

final TextView dan_view = (TextView)findViewById(R.id.DanText); 
final int position = getIntent().getExtras().getInt("position"); 
final String title = lessons_titles[position]; 

check_b.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      String textField = check_text.getText().toString(); 
      if (textField == title){ 
       dan_view.setTextColor(Color.GREEN); 
      } 
      else { 
       dan_view.setTextColor(Color.RED);     
      }       
     } 
    }); 

回答

3

使用equals()方法,而不是==操作時,你比較String。在String的情況下,如果兩個字符串的引用相同,並且發現它們都引用相同的點,則兩個字符串將相等,則必須使用equals()方法。 ==運算符只能比較原始類型值,但String的實例是對象。

所以,你的情況應該是如下...

if (textField.equals(title)){ 
    dan_view.setTextColor(Color.GREEN); 
} else { 
    dan_view.setTextColor(Color.RED); 
} 
0

你的錯誤是在這裏:

if (textField == title){ //<-- 

文本字段是一個字符串,您需要使用.equals(),例如檢查字符串相等

if (textField.equals(title)){ //<-- 
0

使用本

if (textField.compareTo(title) == 0) 
{ 
    dan_view.setTextColor(Color.GREEN); 
} 
    else { 
     dan_view.setTextColor(Color.RED);     
    }