2014-10-02 38 views
-2

我有一個getText()方法的問題。當我運行這個應用程序並輸入任何數字時,也顯示vcx。我的if聲明無效或是什麼?EditText的getText()方法

public class Quadratic extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_quadratic, container, false); 



    // layout 
    Button calc = (Button)rootView.findViewById(R.id.calcbtn); //main button 
    final EditText etfx2 = (EditText)rootView.findViewById(R.id.etfx2); // x^2 etf 

    final TextView tbefs = (TextView)rootView.findViewById(R.id.tbefs); 



    calc.setOnClickListener(new View.OnClickListener() 
    { 

     public void onClick (View v){ 
      String a= etfx2.getText().toString(); 


      if(a=="9") 
      { 
       tbefs.setText("asd");} 
      else 
      { 
       tbefs.setText("vcx"); 
      } 


     } 

    }); 
    return rootView; 
}} 
+1

使用'.equals()'而不是'=='比較字符串。 http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – 2014-10-02 13:32:55

+0

任何人都知道爲什麼Java開發人員不處理這個字符串的平等問題?即使我在SO中看到了10多篇關於此的帖子。 – 2014-10-02 13:43:01

回答

0

取而代之的是== 「9」 的使用:

a.equals("9") 

而且你還有些事要忽略大小寫

a.equalsIgnoreCase("9") 
0

當使用字符串,如果你寫a=="9",你比較參考文獻。這意味着'a指向的字符串是由"9"指向的同一個字符串',即a"9"存儲在內存中的相同位置。

在這裏你想比較你的字符串的內容,所以你必須使用equals方法。

if("9".equals(a)){ 
    // do something 
}