条件

2012-01-20 12 views
-6

に活動を開始し、私は3 actvitiesを持っています。私がボタンをクリックすると問題なしで開きますが、条件でアクティビティを開く場合は機能しません。条件

if(s2=="Both") { 

    Intent i = new Intent(); 
    i.setClassName("com.gotit.babynames", "com.gotit.babynames.BabyNameActivity"); 
    startActivity(i); 

    setTitle(s2); 

} else if(s2=="Boys") { 

    Intent j = new Intent(); 
    j.setClassName("com.gotit.babynames", "com.gotit.babynames.Boys"); 
    startActivity(j); 

    setTitle(s2); 

} else { 
    Intent k = new Intent(); 
    k.setClassName("com.gotit.babynames", "com.gotit.babynames.Girls"); 
    startActivity(k); 

    setTitle(s2); 
} 
+0

作品完全 – Rajesh

+0

いただきましエラーならば、私は唯一のsetTitleを削除しておく場合は、最後の一つは... com.gotit.babynames.Girls ..を開きますか?それはcom.gotit.babynames.BabyNameActivityまたはcom.gotit.babynames.Boysを開いていない何らかの理由で – waqaslam

+0

....条件は他に行く..私はこのように与えれば(S2 ==「両方」)場合、それは動作します{ \t \t \t \t setTitle(s2); } else if(s2 == "Boys"){ setTitle(s2); }他{ \tのsetTitle(S2)。 } – Rajesh

答えて

23

これを使用してみてください:

if ("Both".equals (s2)) 
{ 
    //Do something 
} 

s2 == "Both"は、Javaでのテキストを比較しません。

また、ケースを無視するためにこれを使用することができます:キーワードequalsは実際に両方の文字列を比較しながら

Javaで
if ("Both".equalsIgnoreCase (s2)) 
{ 
    //Do something 
} 
+0

ルシファーあなたはスターではない...おかげでたくさん働い – Rajesh

4

==はメモリ位置を比較します。したがって、==の代わりにs2.equalsを試してください。 Javaでは

1

、あなたが使用==オペレータは、2つの文字列を比較することはできません。代わりに==を使用しての、equals()を使用しています。

構文:

s1.equals("xyz") 
5

さらに良い:

// "Both".equals() will prevent NullPointerException 
if ("Both".equals (s2)) 
{ 
} 

この方法では、あなたがとs2ケースではNullPointerExceptionを避けるためには、あなたは==を使用して2つの文字列を比較している、ヌル

0

あります間違っている。あなたがいる間 '(イコール)' ==メモリ位置(参照)とを比較することに注意してください.equals

例えば:

if (s2.equals ("Both")) 
{ 
/* Your action here*/ 
} 
0

を使用する必要が文字列の内容自体を比較します。

if("Both".equals(s2)) { 
    //Your logic Here 
}