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

标签 java android xml android-actionbar appcompatactivity

您好,感谢阅读,

当我第一次制作我的项目时,Android Studio 提示我选择样板。我选择了空 Activity (没有 FAB 和其他 Activity 的 Activity )。不过,我的应用程序有一个 ActionBar,但它只显示名称。现在,我想修改那个操作栏并添加一个菜单。我的 java 扩展了 AppCompatActivity,因此有一个操作栏。但是,与我以前在 eclipse 中的经验不同,没有我可以找到的菜单 xml。

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

谢谢!

最佳答案

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) 在您的 Activity 中覆盖 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;
}

关于java - 我的应用程序有一个操作栏,但没有 menu.xml。如何修改我的操作栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280665/

相关文章:

java - 使用 java 从复杂的 XML 中读取值

java - XML 到 Java 对象

java - SpringBootApplication 在 ComponentScanning 时排除其他 @SpringBootApplications

java - 使用 Java 和 Hibernate 存储历史数据

android - android 中的 Webview 仅在 Samsung galaxy tab 2 中挂起

android - 将 ActionBar Spinner 导航设计为标题和副标题

java - 检索 Playstore 上我的应用程序列表

java - 通过 USB 的 Android 智能卡读卡器错误 : PROCEDURE BYTE CONFLICT

javascript - 锁屏后 Canvas 元素在 Chrome 中不可见

c# - 从只有一个节点且不循环的 XML 字符串中获取 Innertext