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() 將快捷菜單注冊到界面中的某個控件,長按此控件啟動快捷菜單
示例程序: