首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过代码在Android中创建子菜单

在Android开发中,通过代码创建子菜单可以使用以下步骤:

  1. 首先,在res/menu文件夹下创建一个新的菜单资源文件,例如sub_menu.xml。<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/sub_menu_item_1" android:title="子菜单项1" /> <item android:id="@+id/sub_menu_item_2" android:title="子菜单项2" /> </menu><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_item_with_submenu" android:title="主菜单项" app:actionLayout="@layout/sub_menu" /> </menu>MenuItem menuItemWithSubmenu = menu.findItem(R.id.menu_item_with_submenu); View actionView = menuItemWithSubmenu.getActionView(); PopupMenu popupMenu = new PopupMenu(this, actionView); popupMenu.inflate(R.menu.sub_menu); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.sub_menu_item_1: // 处理子菜单项1的点击事件 break; case R.id.sub_menu_item_2: // 处理子菜单项2的点击事件 break; } return true; } }); menuItemWithSubmenu.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { popupMenu.show(); } return true; } });这样,在主菜单项上点击时,就会显示子菜单。用户可以从子菜单中选择一个选项,并触发相应的事件。
  2. sub_menu.xml文件中,定义子菜单项。例如:
  3. 在主菜单中定义一个菜单项,并设置其android:actionLayout属性为子菜单的布局。例如:
  4. 在主菜单项的点击事件中,使用PopupMenu类来显示子菜单。例如:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(一百二十一)列表弹窗PopupMenu和ListPopupWindow

    PopupMenu是种显示位置不固定的弹出菜单,因为它显示在参照控件下方,所以展示位置随着参照控件的位置变化而变化。而其他几种菜单的显示位置都是固定的,比如说选项菜单Options固定显示在屏幕下方,上下文菜单ContextMenu固定显示在屏幕中央,溢出菜单OverflowMenu固定显示在屏幕右上角,有关其他菜单的详细说明参见《Android开发笔记(六十五)多样的菜单》。 下面是PopupMenu的常用方法说明: 构造函数 : 构造一个PopupMenu对象,并指定该对象的参照控件。 inflate : 根据指定的菜单资源文件,把具体的菜单项目填充到PopupMenu对象中。 setOnMenuItemClickListener : 设置菜单项的点击监听器。该监听器由接口OnMenuItemClickListener派生而来,要重写onMenuItemClick方法来实现菜单项点击事件。 show : 显示弹出菜单。 dismiss : 关闭弹出菜单。 setOnDismissListener : 设置弹出菜单的关闭监听器。 下面是PopupMenu的使用截图:

    03

    Android基础面试题

    第一部分(Part1)Android基础测试 共22题(全部单选,每题2分,总分44分 ) 1、关于在Activity生命周期中的各个方法在不同状态下的调用顺序的说法,错误的是( d) A 一个Activity从被创建到进入运行态,需要依次调用onCreate() -> onStart() -> onResume()。 B 点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开,它的执行过程为:onRestart() -> onStart() -> onResume()。 C 当Activity启动后,点击"返回"按钮,这时Activity会被终止而重新回到系统桌面,它的执行顺序为:onPause() -> onStop() -> onDestroy()。 D 重新启动一个应用,在它被启动后,先点击"拨打电话"按钮,之后再点击"返回"按钮,这时Activity的执行顺序是:onPause() -> onStop() -> onRestart() -> onResume()。

    02
    领券