diff --git a/src/周希奥UI注释6 b/src/周希奥UI注释6 new file mode 100644 index 0000000..1888da8 --- /dev/null +++ b/src/周希奥UI注释6 @@ -0,0 +1,63 @@ +package net.micode.notes.ui; + +// 导入Android系统中处理上下文环境的类,用于访问应用程序的资源和类 +import android.content.Context; +// 导入Android系统中处理菜单的类 +import android.view.Menu; +// 导入Android系统中处理菜单项的类 +import android.view.MenuItem; +// 导入Android系统中处理视图的类 +import android.view.View; +// 导入Android系统中处理视图点击事件的接口 +import android.view.View.OnClickListener; +// 导入Android系统中处理弹出菜单的类 +import android.widget.Button; +// 导入Android系统中处理弹出菜单的类 +import android.widget.PopupMenu; +// 导入Android系统中处理弹出菜单项点击事件的接口 +import android.widget.PopupMenu.OnMenuItemClickListener; + +// 导入应用程序中的资源类 +import net.micode.notes.R; + +// DropdownMenu类用于创建一个下拉菜单 +public class DropdownMenu { + private Button mButton; // 下拉菜单的按钮 + private PopupMenu mPopupMenu; // 弹出菜单 + private Menu mMenu; // 菜单 + + // 构造函数,用于创建DropdownMenu实例 + public DropdownMenu(Context context, Button button, int menuId) { + mButton = button; // 设置下拉菜单的按钮 + mButton.setBackgroundResource(R.drawable.dropdown_icon); // 设置按钮的背景资源 + mPopupMenu = new PopupMenu(context, mButton); // 创建弹出菜单实例 + mMenu = mPopupMenu.getMenu(); // 获取菜单实例 + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); // 加载菜单布局文件 + // MenuInflater是用来实例化Menu目录下的Menu布局文件 + // 根据ID来确认menu的内容选项 + + // 设置按钮的点击事件监听器 + mButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + mPopupMenu.show(); // 显示弹出菜单 + } + }); + } + + // 设置菜单项点击事件的监听器 + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); // 设置菜单项点击事件的监听器 + } + } + + // 根据ID查找菜单项 + public MenuItem findItem(int id) { + return mMenu.findItem(id); // 返回指定ID的菜单项 + } + + // 设置下拉菜单按钮的标题 + public void setTitle(CharSequence title) { + mButton.setText(title); // 设置按钮的文本 + } +} \ No newline at end of file