Android菜单的几种方法
16lz
2021-01-24
6.菜单分类()
普通创建菜单的两种方法 1.动态的添加菜单栏,然后创建菜单栏的点击事件1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | publicbooleanonCreateOptionsMenu(Menumenu){ //动态添加菜单 MenuItemitem=menu.add(1,100,1,"菜单一"); item.setTitle("aaa"); item.setIcon(R.drawable.ic_launcher);//api>=11不显示图标 menu.add(1,101,1,"菜单二"); menu.add(1,102,1,"菜单三"); menu.add(1,103,1,"菜单四"); returntrue; } //点击监听事件将每个菜单栏绑定 publicbooleanonOptionsItemSelected(MenuItemitem){ switch(item.getItemId()){ case100: //跳转到一个页面 Intentintent=newIntent(MainActivity.this,SecondActivity.class); item.setIntent(intent); break; case101: Toast.makeText(MainActivity.this,"点击了菜单二",Toast.LENGTH_LONG) .show(); break; case102: Toast.makeText(MainActivity.this,"点击了菜单三",Toast.LENGTH_LONG) .show(); break; case103: Toast.makeText(MainActivity.this,"点击了菜单四",Toast.LENGTH_LONG) .show(); break; } returnsuper.onOptionsItemSelected(item); } |
2.将菜单栏写在menu文件夹中然后 调用 main 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <menuxmlns:android=" http://schemas.android.com/apk/res/android" xmlns:tools=" http://schemas.android.com/tools" tools:context="com.example.mk_opetionmenu.MainActivity"> <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_settings"/> <item android:id="@+id/action_menu_item1" android:orderInCategory="100" android:showAsAction="never" android:title="菜单1"/> <item android:id="@+id/action_menu_item2" android:orderInCategory="100" android:showAsAction="never" android:title="菜单2"/> </menu> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | publicbooleanonCreateOptionsMenu(Menumenu){ Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } //点击监听事件将每个菜单栏绑定 publicbooleanonOptionsItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub switch(item.getItemId()){ caseR.id.action_menu_item1: //跳转到一个页面 Intentintent=newIntent(MainActivity.this,SecondActivity.class); item.setIntent(intent); break; caseR.id.action_menu_item2: Toast.makeText(MainActivity.this,"点击了菜单四",Toast.LENGTH_LONG) .show(); break; } returnsuper.onOptionsItemSelected(item); } |
2.确定上下文菜单(注册菜单,添加菜单内容(两种方法))
3.添加点击相应事件事件 加载xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <menuxmlns:android=" http://schemas.android.com/apk/res/android" xmlns:tools=" http://schemas.android.com/tools" tools:context="com.example.mk_contextmenu.MainActivity"> <item android:id="@+id/action_item1" android:orderInCategory="100" android:showAsAction="never" android:title="复制"/> <item android:id="@+id/action_item2" android:orderInCategory="100" android:showAsAction="never" android:title="粘贴"/> <item android:id="@+id/action_item3" android:orderInCategory="100" android:showAsAction="never" android:title="剪贴"/> <item android:id="@+id/action_item4" android:orderInCategory="100" android:showAsAction="never" android:title="重命名"/> </menu> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** *设置listview的显示内容 */ privatevoidshowListView(){ ListViewlistview=(ListView)findViewById(R.id.showListView); ArrayAdapter<String>adapter=newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,getData()); listview.setAdapter(adapter); this.registerForContextMenu(listview);//注册上下文菜单 } /** *设置具体的菜单项 */ @Override publicvoidonCreateContextMenu(ContextMenumenu,Viewv, ContextMenuInfomenuInfo){ super.onCreateContextMenu(menu,v,menuInfo); //设置menu显示的内容 menu.setHeaderTitle("文件操作"); menu.setHeaderIcon(R.drawable.ic_launcher); MenuInflaterinflater=getMenuInflater();//把menu中的菜单main添加到菜单栏 inflater.inflate(R.menu.main,menu); } /** *菜单的注册事件 */ @Override publicbooleanonContextItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub switch(item.getItemId()){ caseR.id.action_item1: Toast.makeText(this,"复制中",Toast.LENGTH_LONG).show(); break; caseR.id.action_item2: Toast.makeText(this,"粘贴中",Toast.LENGTH_LONG).show(); break; caseR.id.action_item3: Toast.makeText(this,"剪贴中",Toast.LENGTH_LONG).show(); break; caseR.id.action_item4: Toast.makeText(this,"重命名中",Toast.LENGTH_LONG).show(); break; } returnsuper.onContextItemSelected(item); } /** *构造listview显示的数据 * *@return */ privateArrayList<String>getData(){ ArrayList<String>list=newArrayList<String>(); for(inti=0;i<5;i++){ list.add("文件"+(i+1)); } returnlist; } @Override publicbooleanonCreateOptionsMenu(Menumenu){ getMenuInflater().inflate(R.menu.main,menu); returntrue; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** *设置listview的显示内容 */ privatevoidshowListView(){ ListViewlistview=(ListView)findViewById(R.id.showListView); ArrayAdapter<String>adapter=newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,getData()); listview.setAdapter(adapter); this.registerForContextMenu(listview);//注册上下文菜单 } /** *设置具体的菜单项 */ @Override publicvoidonCreateContextMenu(ContextMenumenu,Viewv, ContextMenuInfomenuInfo){ //TODOAuto-generatedmethodstub super.onCreateContextMenu(menu,v,menuInfo); //设置menu显示的内容 menu.setHeaderTitle("文件操作"); menu.setHeaderIcon(R.drawable.ic_launcher); menu.add(1,1,1,"复制");//代码动态添加 menu.add(1,2,1,"粘贴"); menu.add(1,3,1,"剪贴"); menu.add(1,4,1,"重命名"); } /** *菜单的注册事件 */ @Override publicbooleanonContextItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub switch(item.getItemId()){ case1: Toast.makeText(this,"复制中",Toast.LENGTH_LONG).show(); break; case2: Toast.makeText(this,"粘贴中",Toast.LENGTH_LONG).show(); break; case3: Toast.makeText(this,"剪贴中",Toast.LENGTH_LONG).show(); break; case4: Toast.makeText(this,"重命名中",Toast.LENGTH_LONG).show(); break; } returnsuper.onContextItemSelected(item); } /** *构造listview显示的数据 * *@return */ privateArrayList<String>getData(){ ArrayList<String>list=newArrayList<String>(); for(inti=0;i<5;i++){ list.add("文件"+(i+1)); } returnlist; } @Override publicbooleanonCreateOptionsMenu(Menumenu){ Inflatethemenu;thisaddsitemstotheactionbarifitispresent. returntrue; } |
百度云demo地址:http://pan.baidu.com/s/1gdJeum3
更多相关文章
- Android常见监听事件
- Android使用DrawLayout,ToolBar和ActionBarDrawerToggle实现抽屉
- android中重写onTouchEvent分别实现点击和滑动事件
- Android(安卓)源码解析 - ScrollView
- Android(安卓)butterknife注入完毕后不起作用
- Android(安卓)popupWindow响应back按键并关闭
- 如何分析解决Android(安卓)ANR
- 第20章、OnCheckedChangeListener事件(从零开始学Android)
- Android零基础入门第35节:Android中基于回调的事件处理