Android Menu菜单-菜单无法显示
原创
©著作权归作者所有:来自51CTO博客作者wx63637f8e01d6a的原创作品,请联系作者获取转载授权,否则将追究法律责任
Android Menu菜单
问题描述:
代码中明确写了添加菜单布局的代码 (排除添加布局错误的情况),为什么还是不显示菜单的布局界面呢?
我遇到的解决方案:
我遇到的就是,先前我设置了布局界面为NoActionBar类型,那肯定不行啊,你要知道现在的大部分智能手机菜单的添加依赖于ActionBar,而不象是老版本那种按 菜单键 唤出菜单;
所以解决方法就是更改布局样式为ActionBar类型
像我这样:
老版本有菜单键的 (新版本没有)
MainActivity.java
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;
}
}
menu.xml
<?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>