【Android Menu菜单使用】

package com.example.activitytest

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.Toast
import com.example.activitytest.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.button1.setOnClickListener {
            Toast.makeText(this,"You clicked button1",Toast.LENGTH_SHORT).show()
        }

    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main,menu)
        return true    //true:运行创建的菜单显示出来;false不允许
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.add_item ->
                Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show()
            R.id.remove_item ->
                Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show()
        }
        return true
    }
}

上述代码运行没有菜单选项,排查方法如下:
如果菜单选项没有显示,可能是因为你的菜单资源文件没有被正确创建或者没有与活动关联。以下是一些步骤,确保菜单能够正常显示。

1. 确保菜单资源文件存在

确保在 res/menu 目录下有一个名为 main.xml 的文件,内容类似于以下代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_item"
        android:title="Add" />
    <item
        android:id="@+id/remove_item"
        android:title="Remove" />
</menu>

2. 检查 Activity 设置

确保你的 MainActivity 正确地设置了安卓Manifest文件。

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

3. 确保正确调用

确保在 MainActivityonCreateOptionsMenu 方法中调用了 menuInflater.inflate(R.menu.main, menu),并且返回 true。你的实现是正确的:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main, menu)
    return true
}

4. 检查 Theme 和 Action Bar

确保应用使用了支持 ActionBar 的主题。可以在 AndroidManifest.xml 中检查或按照以下步骤更新主题。

首先,打开 res/values/styles.xml 文件,确保你的主题继承自 Theme.AppCompat 或其他包含 ActionBar 的主题:

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>
</resources>

然后,确保在 AndroidManifest.xml 中使用了这个主题:

<application
    ...
    android:theme="@style/AppTheme">
    ...
</application>

5. 调试和测试

  • 确保该 Activity 正在运行且没有异常。
  • 如果以上步骤仍然没有解决问题,可以尝试清除缓存并重新运行应用。有时,IDE 的缓存可能导致问题。

通过遵循这些步骤,你应该能够成功在 MainActivity 中显示菜单选项。如果问题依旧,请提供更多的代码或错误信息进行进一步的诊断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值