You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
test-1/DropdownMenu.java

58 lines
1.8 KiB

package net.micode.notes.ui;
import android.content.Context;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import net.micode.notes.R;
// 下拉菜单类,用于创建和管理一个与按钮关联的下拉菜单
public class DropdownMenu {
// 关联的按钮
private Button mButton;
// 弹出式菜单对象
private PopupMenu mPopupMenu;
// 菜单对象
private Menu mMenu;
// 构造函数,初始化下拉菜单
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);
// 设置按钮的点击事件,点击按钮时显示弹出式菜单
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);
}
// 设置按钮的文本(即下拉菜单的标题)
public void setTitle(CharSequence title) {
mButton.setText(title);
}
}