title: menu的使用
date: 2019-08-23 10:37:08
tags: android
如何添加菜单--menu的使用
menu的效果大概是下面这样:
创建menu
Android Studio没有给我们自动创建menu资源文件,我们得自己创建。
首先在res文件夹新建一个名为menu的文件夹,接着在这个文件夹下新建一个menu资源文件,名字随便取,这里取main。
然后在 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="@string/main_menu_add_item"/>
<item
android:id="@+id/remove_item"
android:title="@string/main_menu_remove_item"/>
</menu>
每个item对应着菜单中的一项,id:唯一标识符,title:选项上面的文字。
然后在MainActivity中重写onCreateOptionsMenu(Menu menu)方法。
@Override
public boolean onCreateOptionsMenu(Menu menu){
Log.i(TAG, "onCreateOptionsMenu: start");
getMenuInflater().inflate(R.menu.main, menu); // 将main填充到MainActivity里
return true; // 返回true 表示允许创建的菜单显示出来;返回false,创建的菜单将无法显示
}
值得注意的是,这个方法在应用刚开始的时候就调用了,在onCreate()方法之后调用
为每个item设置功能
item的功能需要在Activity.onOptionsItemSelected(MenuItem item)中实现,为此我们要重写该方法。
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
Log.i(TAG, "onOptionsItemSelected: start");
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
break;
default: break;
}
return true;
}
这个方法,只有在你点击了菜单中某一项的时候才会调用
参考书
《第一行代码 Andriod》