此方法必须返回boolean类型的结果 - android选项菜单

时间:2014-09-04 18:11:32

标签: android android-actionbar

我正在尝试添加将在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);
    }
} 

3 个答案:

答案 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,它也可以正常工作。