使用BaseActivity扩展Activity后,菜单消失了

时间:2016-09-25 10:07:01

标签: android

我在所有活动文件中都有以下代码。我会为所有活动使用相同的菜单。这是代码。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();    
    if (id == R.id.action_settings) {
        return true;
    }    
    return super.onOptionsItemSelected(item);
}

我没有在所有活动中复制此代码,而是使用以下代码创建了一个BaseActivity。

public class BaseActivity extends Activity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();    
        if (id == R.id.action_settings) {
            return true;
        }    
        return super.onOptionsItemSelected(item);
    }
}

现在所有的活动都在扩展BaseActivity,如下所示。

public class AddItemActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_item);
    }    
}

问题

由于上述代码,菜单消失了。我做错了吗?

1 个答案:

答案 0 :(得分:1)

更改以下行:

public class BaseActivity extends Activity

到下面

public class BaseActivity extends AppCompatActivity

我创建了一个可能你需要的简单项目。请在此处查看:https://github.com/briannl/OptionMenuExample