在条件下开始活动

时间:2012-01-20 09:55:12

标签: java string if-statement

我有三项活动。当我点击按钮时,它们打开没有任何问题,但是当我想按条件打开一个活动时它不起作用。

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);
}

6 个答案:

答案 0 :(得分:21)

尝试使用:

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

s2 == "Both"不会比较Java中的文本。

你也可以用它来忽略套管:

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

答案 1 :(得分:5)

更好:

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

这样,在s2为空

的情况下,可以避免NullPointerException

答案 2 :(得分:4)

在java中,==比较内存位置,而关键字equals实际上比较了两个字符串。因此,请尝试s2.equals而不是==

答案 3 :(得分:1)

在Java中,您不能使用==运算符来比较两个字符串。不要使用==,而是使用equals()

语法:

s1.equals("xyz")

答案 4 :(得分:0)

您正在使用==比较两个字符串,这是错误的。你必须使用.equals

e.g:

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

答案 5 :(得分:0)

请注意==比较记忆位置(参考),而'等于()'比较字符串内容本身。

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