Android界面菜单(4)—快捷菜单

原创
2016/11/23 18:00
阅读数 1.2K

快捷菜单

        当用户点击界面上某个元素超过2秒后,将启动注册到该界面的快捷菜单。

步骤: 

1.代码动态生成菜单

final static int CONTEXT_MENU_1 = Menu.FIRST;
	final static int CONTEXT_MENU_2 = Menu.FIRST+1;
	final static int CONTEXT_MENU_3 = Menu.FIRST+2;
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// TODO Auto-generated method stub
		menu.setHeaderTitle("快捷菜单");
		menu.add(0, CONTEXT_MENU_1, 0, "快捷菜单子项1");
		menu.add(0, CONTEXT_MENU_2, 0, "快捷菜单子项2");
		menu.add(0, CONTEXT_MENU_3, 0, "快捷菜单子项3");
		
	}
  • 说明:
  • onCreateContextMenu() 第1个参数:需要显示的菜单menu
  • onCreateContextMenu() 第2个参数:v 是用户点击的界面元素
  • onCreateContextMenu() 第3个参数:所选界面元素的额外信息

2.设置响应事件代码

	@Override
	public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		TextView label = (TextView)findViewById(R.id.textView_1);
		switch(item.getItemId()){
		case CONTEXT_MENU_1:
			label.setText("菜单子项1");
			return true;
		case CONTEXT_MENU_2:
			label.setText("菜单子项2");
			return true;
		case CONTEXT_MENU_3:
			label.setText("菜单子项3");
			return true;
		}
		return false;
	}

3.将快捷菜单注册到界面中的某个元素

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView label = (TextView)findViewById(R.id.textView_1);
		registerForContextMenu(label);
	}

说明:使用registerForContextMenu() 将快捷菜单注册到界面中的某个控件,长按此控件启动快捷菜单

示例程序:

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部