我无法解决这个问题。它在else上返回错误。我尝试了所有其他具有相同问题的线程,但它没有工作。
@Override
public boolean onOptionsItemSelected(MenuItem item) { //this method is used for handling menu items' events
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if(myWebView.canGoBack()) {
myWebView.goBack();
}
return true;
else
return super.onOptionsItemSelected(item);{
}
}
}
答案 0 :(得分:0)
Eclipse抱怨,因为else语句不遵循if语句 - 中间有一个return true
(顺便说一下,它会阻止执行后的任何代码)。修复缩进和代码格式化有助于发现(并防止)像这样的简单错误。
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if (myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
}
return super.onOptionsItemSelected(item);
}
答案 1 :(得分:0)
错误是因为在java(并且很可能是定义if...else
块的任何编程语言(如c#,c,c ++等)中,else
块(如果存在)必须正确在if
块或else if
语句定义之后,if
和else
之间的任何其他语句都是非法的。但是,您在return
块之前有一个else
语句,这是非法且无用的,因为return
语句之后的任何代码块都变得“无法访问”
您可以将代码更改为...
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.goBack:
if (myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
break;
default:
return super.onOptionsItemSelected(item);
}
}