我的应用有一个操作栏,但没有menu.xml。如何修改操作栏?

时间:2016-02-08 22:34:54

标签: java android xml android-actionbar appcompatactivity

您好,感谢您的阅读,

当我第一次完成项目时,Android Studio会提示我选择锅炉板。我选择了空活动(没有FAB和其他活动)。不过,我的应用有一个ActionBar,但它只是显示了名称。现在,我想修改该操作栏并添加一个菜单。我的java扩展了AppCompatActivity,因此有一个操作栏。然而,与我之前在eclipse中的经历不同,我找不到菜单xml。

如何通过其他方式添加或修改我的操作?我可以手动添加吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

1)您需要创建(或修改,如果存在)您的菜单资源文件/res/menu/main_menu.xml以创建操作。

例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_refresh"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_refresh"
        android:title="Refresh"/>
    <item
        android:id="@+id/action_settings"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_setting"
        android:title="Settings">
    </item>

</menu> 

2)覆盖活动中的onCreateOptionsMenu()以允许扩充XML中定义的操作:

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

3)覆盖onOptionsItemSelected()以对动作选择作出反应:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.action_refresh:
      Toast.makeText(this, "Refresh selected", Toast.LENGTH_SHORT).show();
      break;

    case R.id.action_settings:
      Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT).show();
      break;
    }

    return true;
}