2011-02-04 11 views
0

私はアンドロイドアプリを持っています。その中で私がEditTestから2つの文字列を比較していますが、私はいくつかの奇妙な結果を得る...if文のエラー

if(v==findViewById(R.id.submit)){ 
      // 

      if(email==crfm_email) 
      { 

       String warn="Done!"; 
       Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG); 
       toast.show(); 
      } 
      else 
      { 
       oFN=(EditText)findViewById(R.id.owners_first_name); 
       String warn="email addresses do not match "+eMail+" "+crfEmail; 
       Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG); 
       toast.show(); 

      } 

     } 

問題は、コントロールが常に両方の変数の入力が同じであっても、他の部分に行くということです。 私はその単純な間違いを知っていますが、それを打ち砕くことはできません...!

+1

の代わりに==を使用しています。!!!! –

+0

"なぜループではないのですか?"、このコメントはどうですか "、" !!!! - radkrish "? – rahul

+0

Iamは混乱しています。私はこの質問のために複数の答えを持っているので、すべて似ています。 – rahul

答えて

2

オブジェクト比較の代わりにオブジェクト参照比較を実行しているようです。

if (email.equals(crfm_email)) 
{ 
    .... 

文字列を比較する:

if(email==crfm_email) 

は、おそらく...

if(email.equals(crfm_email)) 
+0

ありがとうございました... – rahul

3

使用であるべき。あなたがStringオブジェクトの参照ではなく、Stringの内容を比較したいという要点です。

+0

ありがとうございます... – rahul

2

試してみてください。

email.equals(crfm_email) 

Javaで==が文字列の内容は同じ

+0

ありがとうございます... – rahul

0

であれば、それは文字列の同じインスタンスではない場合、私はあなたが次のように興味があるかもしれないと思うと比較それで質問:Java common Gotcha's。ループはない「場合」

トップ候補は、equals :)