Java 根据条件启动活动

Java 根据条件启动活动,java,string,if-statement,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

我有三种行为。当我点击按钮时,它们会毫无问题地打开,但当我想按条件打开一个活动时,它不起作用

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);
}
尝试使用以下方法:

if ( "Both".equals ( s2 ) )
{
    //Do something
}
s2==两者都不会比较Java中的文本

也可以使用此选项忽略大小写:

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

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

在Java中,不能使用==运算符来比较两个字符串。使用equals代替==

语法:

s1.equals("xyz")
更好的是:

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

这样,在s2为null的情况下,可以避免出现NullPointerException,因为您使用==比较两个字符串,这是错误的。你必须使用

e、 g:

请注意==比较内存位置引用,而'equals'比较字符串内容本身


最后一个打开了。。。com.gotit.babynames.Girls。。如果我删除并仅保留setTitle,如果由于某种原因它工作完美,则它不会打开com.gotit.babynames.babynamesactivity或com.gotit.babynames.Boys。。。。这种情况会发生在其他方面。。如果我这样给出,它可以工作,如果s2==两个{setTitles2;}否则ifs2==男孩{setTitles2;}否则{setTitles2;}setTitle工作正常,但没有意图和startActivity代码
if ( s2.equals ( "Both" ) )
{
 /* Your action here*/
}
if( "Both".equals(s2)) {
    //Your logic Here
}