1.menu
//Menu提供了一种机制,可以让界面中的菜单项在默认情况下不显示。
//只有当用户主动点击了菜单按钮时,才会弹出里面具体的内容,因此它不会占用任何Activity的空间。
override fun onCreateOptionsMenu(menu: Menu?): Boolean {//撤销ctrl+Z
menuInflater.inflate(R.menu.main,menu)//inflate()方法接收两个参数:第一个参数用于指定我们通过哪一个资源文件来创建菜单,
// 这里当然是传入R.menu.main;第二个参数用于指定我们的菜单项将添加到哪一个Menu对象当中,这里直接使用onCreateOptionsMenu()方法中传入的menu参数。
// 最后给这个方法返回true,表示允许创建的菜单显示出来,如果返回了false,创建的菜单将无法显示。
//我们刚才在onCreateOptionsMenu()方法中编写的menuInflater就使用了这种语法糖,它实际上是调用了父类的getMenuInflater()方法。
// getMenuInflater()方法能够得到一个MenuInflater对象,再调用它的inflate()方法,就可以给当前Activity创建菜单了。
return true//这三句话重写menu的操作方法onCreateOptionsMenu(menu: Menu?): Boolean
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {// 菜单显示出来是不够的,我们定义菜单不仅是为了看的,关键是要菜单真正可用才行
// ,因此还要再定义菜单响应事件。在FirstActivity中重写onOptionsItemSelected()方法
// onOptionsItemSelected()方法中,我们通过调用item.itemId来判断点击的是哪一个菜单项。
when(item.itemId){
R.id.add_item -> Toast.makeText(this,"您点击了这个选项(add)",Toast.LENGTH_SHORT).show()
R.id.remove_item -> Toast.makeText(this,"您点击了这个选项(remove)",Toast.LENGTH_SHORT).show()
R.id.test_item -> Toast.makeText(this,"您点击了这个选项(test)",Toast.LENGTH_SHORT).show()
}
return true
}
}
实例如下: