在哪里添加菜单以适用于所有活动

时间:2018-04-30 19:37:09

标签: android menu

我有一个menu.xml和代码来显示操作栏中的菜单。我是否必须在每个活动中添加代码?之后我使用一个开关盒获得点击,以及更多代码,所以我不喜欢它在每个活动中复制粘贴相同代码的正确方法

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;

有没有更好的方法来处理所有应用程序(所有活动)?

2 个答案:

答案 0 :(得分:1)

创建一个BaseActivity类。

public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

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

现在,扩展基本活动的所有活动都将具有相同的菜单。

答案 1 :(得分:-1)

这是Android Menu的指南 这是一个示例菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
          android:icon="@drawable/ic_new_game"
          android:title="@string/new_game" />
    <item android:id="@+id/help"
          android:icon="@drawable/ic_help"
          android:title="@string/help" />
</menu>

然后在你的活动中充气:

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

单击项目:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.new_game:
        newGame();
        return true;
    case R.id.help:
        showHelp();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}
祝你好运并阅读doc官方的官方文件