2012-01-20 5 views
-6

나는 세 가지 활동을 가지고 있습니다. 버튼을 클릭하면 아무런 문제없이 열립니다. 그러나 조건에 따라 활동을 열려면 작동하지 않습니다.조건으로 활동 시작하기

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

마지막 내가 제거 만 setTitle이라는를 유지하는 경우 ... com.gotit.babynames.Girls ... 열립니다 – Rajesh

+0

완벽하게 작동하면 무슨 오류? – waqaslam

+0

어떤 이유로 com.gotit.babynames.BabyNameActivity 또는 com.gotit.babynames.Boys을 열지 못하고 있습니다. ... 조건이 다른 곳으로 이동합니다.이 값이 주어지면 (s2 == "Both") 작동합니다. { \t \t \t \t setTitle (s2); } else if (s2 == "Boys") { setTitle (s2); } else { \t setTitle (s2); } – Rajesh

답변

23

이를 사용해보십시오 :

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

s2 == "Both"

자바에서 텍스트를 비교하지 않습니다.

또한 케이스를 무시하려면이 옵션을 사용할 수 있습니다 키워드 equals 실제로 두 문자열을 비교하면서

자바에서
if ("Both".equalsIgnoreCase (s2)) 
{ 
    //Do something 
} 
+0

루시퍼 (Lucifer) 당신은 스타입니다 ... 많이 고마워요. – Rajesh

4

, ==는 메모리 위치를 비교합니다. 따라서 == 대신 s2.equals을 시도하십시오.

1

자바에서는 == 연산자를 사용하여 두 문자열을 비교할 수 없습니다. ==을 사용하는 대신 equals()을 사용하십시오.

구문 :

s1.equals("xyz") 
5

더 나은 :

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

이 방법, 당신은 S2 경우는 NullPointerException을 피하기 당신은 ==를 사용하여 두 개의 문자열을 비교하는 널 (null)

0

인 잘못된 것입니다. 당신은 동안 '(등호)'==메모리 위치 (참조)를 비교 있습니다 .equals

예컨대 :

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

를 사용해야하는 문자열 내용 자체를 비교합니다.

if("Both".equals(s2)) { 
    //Your logic Here 
} 
관련 문제