From 7604296b86b2a2efb6b44cbb0359a482d9f5713e Mon Sep 17 00:00:00 2001 From: lxt-Area <3048875811@qq.com> Date: Thu, 21 Dec 2023 15:15:34 +0800 Subject: [PATCH] Update DropdownMenu.java --- src/net/micode/notes/ui/DropdownMenu.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net/micode/notes/ui/DropdownMenu.java b/src/net/micode/notes/ui/DropdownMenu.java index 3fa0224..be549a7 100644 --- a/src/net/micode/notes/ui/DropdownMenu.java +++ b/src/net/micode/notes/ui/DropdownMenu.java @@ -38,7 +38,8 @@ public class DropdownMenu {//构建一个方法去弹出菜单,按钮与现实 mPopupMenu = new PopupMenu(context, mButton);//创建一个新的 PopupMenu 对象 mPopupMenu,这个对象会和 mButton 相关联,当点击这个按钮时,会显示这个弹出菜单。 mMenu = mPopupMenu.getMenu(); //通过调用 mPopupMenu.getMenu() 方法获取菜单对象 mMenu,这个对象代表了弹出菜单的内容。 - mPopupMenu.getMenuInflater().inflate(menuId, mMenu);//使用 getMenuInflater().inflate 方法来加载并设置弹出菜单的内容,传入的参数是菜单 ID 和菜单对象,这个方法会根据菜单 ID 加载对应的菜单资源(可能是一个 XML 文件定义的菜单布局),并将加载后的内容设置到菜单对象上。 + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + //使用 getMenuInflater().inflate 方法来加载并设置弹出菜单的内容,传入的参数是菜单 ID 和菜单对象,,并将加载后的内容设置到菜单对象上。 mButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { mPopupMenu.show(); @@ -47,10 +48,13 @@ public class DropdownMenu {//构建一个方法去弹出菜单,按钮与现实 } public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + //定义处理菜单项点击事件的回调方法。 if (mPopupMenu != null) { mPopupMenu.setOnMenuItemClickListener(listener); + //将用户定义的点击监听器设置为下拉菜单的点击监听器,以便当用户点击菜单项时,可以执行相应的操作。 } } + //这个构造方这个方法允许用户设置一个自定义的点击监听器,以便处理下拉菜单项的点击事件。但在设置监听器之前,它会检查下拉菜单实例(mPopupMenu)是否存在,以避免在null对象上调用方法而导致的空指针异常。 public MenuItem findItem(int id) { return mMenu.findItem(id);