上篇文章我们详细的介绍了如何实现一个选项菜单,菜单中的每个菜单项、菜单子项都有其对应的功能,这些功能通常都是通过菜单项的点击事件来实现,我们下面将通过代码来编写菜单项的点击事件。
将提前创建好的菜单添加到Activity中,创建和添加菜单的代码就不再次讲解了,不明白的可以去公众号中找《android菜单控件 menu》一文进行学习,菜单代码如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_1"
android:icon="@mipmap/e_mail"
android:title="菜单项1"
app:showAsAction="never">
<menu>
<item
android:id="@+id/item_1_1"
android:title="菜单项1.1"
android:icon="@mipmap/e_mail"
app:showAsAction="never"/>
<item
android:id="@+id/item_1_2"
android:title="菜单项1.2"
app:showAsAction="never"/>
menu>
item>
menu>
创建好菜单后,在提前创建好的Menu_Activity中编写添加菜单代码,代码如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_item,menu);
return super.onCreateOptionsMenu(menu);
}
给Menu_Activity添加菜单后,我们接着来写菜单项的点击事件,代码如下:
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.item_1:
Toast.makeText(this,"您选择了菜单项1",Toast.LENGTH_LONG).show();
break;
case R.id.item_1_1:
Toast.makeText(this,"您选择了菜单项1.1",Toast.LENGTH_SHORT).show();
break;
case R.id.item_1_2:
Toast.makeText(this,"您选择了菜单项1.2",Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
上面代码中,我们在Menu_Activity中添加了
onOptionsItemSelected
方法,在该方法中编写菜单项的点击事件,跟Button的点击事件一样,我们通过一个switch语句根据菜单项的id给菜单项设置对应的事件,这里需要注意的是,onOptionsItemSelected方法中的参数为item每一个菜单项都是一个item,所以需要通过item.getItemId()方法来获取菜单项的id,我们给每个item的点击事件设置为,点击菜单项通过Toast方法弹出提示信息。运行程序,如下图:
可以看到,点击菜单项后弹出了相应的提示信息,当然,在实际开发中菜单项的功能不会只是弹出一条信息,我们这里仅仅是来演示菜单项的点击事件处理,你也可以在其点击事件中实现各种复杂的功能。
以上就是菜单项点击事件的处理,本期内容不多,主要是对上篇文章做一个补充,后面几期文章我们会带大家通过实例来实现更复杂多样化的菜单。
获取更多的Android信息和知识,请关注我们的微信公众号:秉空课堂