0

我在 IF ELSE 语句上有一个 java 语法错误。我多次检查了我的代码,但无法找出问题所在。错误是:标记“else”的语法错误,删除此标记。我在这里做错了什么?

if(androidFragment!=null)
    ft.detach(androidFragment);

if(appleFragment!=null)
    ft.detach(appleFragment);

if(berryFragment!=null)
    ft.detach(berryFragment);


if(tabId.equalsIgnoreCase("android")){

    if(androidFragment==null){      

        ft.add(R.id.realtabcontent,new AndroidFragment(), "android");                       
    }else{

        ft.attach(androidFragment);                     
    }

}else if{   

    if(appleFragment==null){

        ft.add(R.id.realtabcontent,new AppleFragment(), "apple");                       
    }else{

        ft.attach(appleFragment);               
    }

}else{  

    if(berryFragment==null){

        ft.add(R.id.realtabcontent,new BerryFragment(), "berry");                       
    }else{

        ft.attach(berryFragment);                       
    }

}
4

6 回答 6

3

你在这方面没有条件if

...
}else if{ /* condition missing at this if */  

    if(appleFragment==null){

        ft.add(R.id.realtabcontent,new AppleFragment(), "apple");                       
    }else{

        ft.attach(appleFragment);               
    }
}...

将其更改为您需要的内容,可能:

...
}else if (tabId.equalsIgnoreCase("apple")){

    if(appleFragment==null){

        ft.add(R.id.realtabcontent,new AppleFragment(), "apple");                       
    }else{

        ft.attach(appleFragment);               
    }
}...
于 2013-04-05T18:11:39.767 回答
1

您只能将一个else附加到if; 这里有两个elses,forAppleFragmentBerryFragment

if(tabId.equalsIgnoreCase("android")){

  ...
}else{  

    ...

}else{  

    ...

}

编辑

您现在有以下代码片段:

} else if {

else if需要一个条件,例如

} else if (/*another boolean condition here for AppleFragment*/) {
于 2013-04-05T18:07:23.327 回答
1

您连续有 2 个其他人

if (...) {
   ...
} else {
   ...
} else {   <--only one "else" allowed.
   ...
}
于 2013-04-05T18:07:24.527 回答
1

您没有else if正确使用该构造,您的代码应如下所示:

}else if(tabId.equalsIgnoreCase("apple")) {   

    if(appleFragment==null){
        ...

}else if (tabId.equalsIgnoreCase("berry")){  

    if(berryFragment==null){
        ...
}
于 2013-04-05T18:25:14.603 回答
0

只允许一个 else,使用 else if

if(condition){ ....

}else if(condition 2){ ......

}else{ ........

}
于 2013-04-05T18:08:42.783 回答
0

问题在这里:

else{   // Second else compilation error

    if(berryFragment==null){

        ft.add(R.id.realtabcontent,new BerryFragment(), "berry");                       
    }else{

        ft.attach(berryFragment);                       
    }

}

你不能有两个 else 语句。

于 2013-04-05T18:09:39.477 回答