我正在尝试添加将在Activity
项目点击上启动的ActionBar
。但是,在onOptionsItemSelected
方法中,我得到"This method must return a result of type boolean"
。这是因为我添加了案例2。
为什么会这样?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_settings:
Intent viewIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(viewIntent);
break;
case R.id.action_info:
Intent intent = new Intent(this, Info.class);
this.startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:0)
那是因为如果它转到R.id.action_settings
,你没有返回任何东西,但该方法需要返回一个布尔值。我会说真的,因为它可以处理。 :)
答案 1 :(得分:0)
case R.id.action_settings:
Intent viewIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(viewIntent);
break;
你错过了第一个案件的回报。您可以将break
替换为return
,或在方法末尾添加return
答案 2 :(得分:0)
case R.id.action_settings:
Intent viewIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(viewIntent);
return true;//instead of break use this line
由于onOptionsItemSelected(MenuItem item)
的返回类型是布尔值,您必须返回boolean
值。如果您中断,则返回boolean
将导致错误This method must return a result of type boolean
。但是,如果你在方法的最后添加一个return
,它也可以正常工作。