【安卓开发】【Android Studio】Menu(菜单栏)的使用及常见问题

一、菜单栏选项

在项目中添加顶部菜单栏的方法:

在res目录下新建menu文件夹,在该文件夹下新建用于菜单栏的xml文件:

举例说明菜单栏的写法,只添加一个选项元素:

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/app_info"
        android:title="@string/app_info"/>
</menu>

二、在活动代码中添加菜单栏显示

java 复制代码
@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

常见问题1:应用顶部菜单不显示?

修改应用主题xml文件,在parent这里去掉DayNight后面的内容:

xml 复制代码
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Base.Theme.WeilaYinuo" parent="Theme.Material3.DayNight">
        <!-- Customize your light theme here. -->
        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
    </style>

    <style name="Theme.WeilaYinuo" parent="Base.Theme.WeilaYinuo" />
</resources>

常见问题2:菜单跳转事件提示id必须是常量?

java 复制代码
public boolean onOptionsItemSelected(@NonNull MenuItem item){
        switch (item.getItemId()){
            case 1:
                Intent intent = new Intent();
                intent.setClass(LoginActivity.this, AppInfoActivity.class);
                startActivity(intent);
        }
        return true;
    }

switch语句的case条件必须是整数(从上到下排列),不能是菜单xml文件中定义的id。

相关推荐
alexhilton11 小时前
Room Fts4:全文搜索替代 SQL LIKE
android·kotlin·android jetpack
hai_android17 小时前
把 Android App 打包成系统应用(System App)
android·kotlin·android jetpack
JMchen17 小时前
【Jetpack 内核实战 01】开篇:Jetpack 组件全家桶核心逻辑与专栏完整规划
android·kotlin·android jetpack
骑着蜗牛撵大象32719 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
hunterandroid19 小时前
Retrofit 网络请求的异常处理与重试策略实战
android
sejinan20 小时前
极致轻量与秒级起播:NativeWasmTv 开源硬核技术解析与升级版体验
android·开源·webview·tv
小羊没烦恼!20 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
mmsx20 小时前
Android 静默失败实录:五个没有日志的线上事故
android·kotlin
hai_android21 小时前
从零实现一个支持跨进程(IPC)的自定义 Toast
android·kotlin·android jetpack
龙腾-虎跃21 小时前
基于 SIP 协议的自研电话终端:FreeSWITCH 语音与视频通信实战
android·音视频·freeswitch·sip协议终端·wertc