嗨专业人士请帮我解决这个错误。我可能知道返回true后的任何内容都不会被执行,这就是它返回错误的原因。请建议我应该在哪行之后返回true;编程新但喜欢它。以下代码是Java / Android API。
@Override
public boolean onCreateOptionsMenu(Menu menu){
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
counter = 0;
add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);
display = (TextView) findViewById (R.id.tvDisplay);
add.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter++;
display.setText("Your total is" + counter);
}
});
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter--;
}
});
}
}
答案 0 :(得分:1)
那不是说谎。在onCreateOptionsMenu()方法中的return true;
之后,代码永远不会被执行。
返回true应放在函数的末尾(一般来说)
答案 1 :(得分:1)
正如您所知,一旦您的程序遇到return
语句,该代码块中的任何其他内容都不会执行。因此,return true;
的逻辑位置应该是在您设置了所有事件侦听器之后,如下所示“
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter--;
}
});
return true; // here
}
答案 2 :(得分:1)
return true;
语句使方法的其余部分无法访问。将其移动到方法的底部。
答案 3 :(得分:0)
该行return true;
将使处理器跳出nethod onCreateOptionsMenu
,结果为true。因此,return true;
行之后的代码永远不会被执行。
编译器检测到这种错误并报告返回后的代码无法访问,因为在大多数情况下这是偶然的而不是故意的。