Android中所有活动中的相同选项菜单

sun*_*nil 31 android menu option

我的项目中有10-15个活动.我希望在所有活动中都有选项菜单.然后他们以任何方式在一个地方做它并且它出现在所有活动中.

另外,我想隐藏一些选项菜单.那么,是否有可能或者我必须在所有活动中编写选项菜单代码.

问候

苏尼尔

st0*_*0le 64

创建一个扩展Activity,覆盖和函数的类(比如BaseActivity).onCreateOptionsMenuonOptionsItemSelected

public class BaseActivity extends Activity {

    // Activity code here

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item:
                // do what you want here
                return true;
            default:
               return super.onOptionsItemSelected(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在其他15-16个活动中,您应该扩展BaseActivity,而不是扩展Activity .

public class FooActivity extends BaseActivity { 

    // Activity code here

}
Run Code Online (Sandbox Code Playgroud)

这样,您的所有活动都会导出选项菜单.对于要禁用选项菜单的活动,可以在该特定活动中再次覆盖它.

public class BarActivity extends BaseActivity { 

    // Activity code here

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       // Do Nothing
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
       // Do Nothing
   }
}
Run Code Online (Sandbox Code Playgroud)

希望它不会在清单文件中给你带来问题.