2019独角兽企业重金招聘Python工程师标准>>>
快捷菜单
当用户点击界面上某个元素超过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;@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubmenu.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.设置响应事件代码
@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubTextView 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.将快捷菜单注册到界面中的某个元素
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView label = (TextView)findViewById(R.id.textView_1);registerForContextMenu(label);}
说明:使用registerForContextMenu() 将快捷菜单注册到界面中的某个控件,长按此控件启动快捷菜单
示例程序: