Activity中使用Menu
手机毕竟和电脑不同,它的屏幕空间是十分有限的,如果你的Activity中有大量的菜单需要显示,可以使用Menu来实现。
首先在res资源目录下新建一个menu文件夹,并在该文件夹下新加一个文件main.xml
在main.xml中定义菜单选项资源
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add" android:title="add"/> <item android:id="@+id/remove" android:title="remove"/> </menu>
这里我们创建了两个菜单项,其中<item>标签用来创建具体的某一个菜单项,然后通过android:id给这个菜单项指定一个唯一的标识符,通过andriod:title给这个菜单指定一个名称。
接着在对应的Activity中重写onCreateOptionsMenu方法来实现创建菜单
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
Log.d("MainActivity", "onCreateOptionsMenu")
menuInflater.inflate(R.menu.main, menu)
return true //return false则表示不显示菜单栏
}
其中inflate方法有两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,第二个参数用于指定菜单项将添加到哪一个Menu对象中。最后方法返回true表示允许创建的菜单显示出来,如果返回false,创建出来的菜单将无法显示。
接下来我们在Activity中重写菜单的响应事件
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.add -> Toast.makeText(this, "you click add", Toast.LENGTH_LONG).show()
R.id.remove -> Toast.makeText(this, "you click remove", Toast.LENGTH_LONG).show()
}
return false
}
这样基本的Menu功能就已经实现了。
运行程序,你会发现在标题栏的右侧多了一个三点的符号,这个就是菜单按钮了。
点击对应的菜单,可以触发对应的弹框动作
至此,Action中的Menu的基本功能就讲解结束了。
posted on 2023-05-21 16:13 Devil'soul 阅读(60) 评论(0) 编辑 收藏 举报