赞
踩
代码中明确写了添加菜单布局的代码 (排除添加布局错误的情况),为什么还是不显示菜单的布局界面呢?
我遇到的就是,先前我设置了布局界面为NoActionBar类型,那肯定不行啊,你要知道现在的大部分智能手机菜单的添加依赖于ActionBar,而不象是老版本那种按 菜单键 唤出菜单;
所以解决方法就是更改布局样式为ActionBar类型
像我这样:


import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import fengxing.primer.textlink.R; public class MenuActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); } /** * 创建菜单 * @param menu * @return */ @Override public boolean onCreateOptionsMenu(Menu menu) { //加载布局 getMenuInflater().inflate(R.menu.system_menu,menu); return super.onCreateOptionsMenu(menu); } /** * 菜单选择事件 * @param item * @return */ @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.menu_save: { Toast.makeText(MenuActivity.this,"保存",Toast.LENGTH_SHORT).show(); } break; case R.id.menu_cancel: { Toast.makeText(MenuActivity.this,"取消",Toast.LENGTH_SHORT).show(); } break; case R.id.menu_setting: { Toast.makeText(MenuActivity.this,"设置",Toast.LENGTH_SHORT).show(); } break; default: break; } return true; } }
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_setting" android:title="设置" android:icon="@drawable/back"></item>
<item android:id="@+id/menu_cancel" android:title="取消" android:icon="@drawable/back1"></item>
<item android:id="@+id/menu_save" android:title="保存" android:icon="@drawable/a2"></item>
</menu>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。