您的位置:首页 > 移动开发 > Android开发

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

2016-11-23 00:00 363 查看

快捷菜单

当用户点击界面上某个元素超过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() 将快捷菜单注册到界面中的某个控件,长按此控件启动快捷菜单

示例程序:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息