|
|
|
@ -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); // 设置按钮的文本
|
|
|
|
|
}
|
|
|
|
|
}
|