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); }
上下文的菜单栏菜单栏(长按弹出的菜单栏) 1.创建listview
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



更多相关文章

  1. Android常见监听事件
  2. Android使用DrawLayout,ToolBar和ActionBarDrawerToggle实现抽屉
  3. android中重写onTouchEvent分别实现点击和滑动事件
  4. Android(安卓)源码解析 - ScrollView
  5. Android(安卓)butterknife注入完毕后不起作用
  6. Android(安卓)popupWindow响应back按键并关闭
  7. 如何分析解决Android(安卓)ANR
  8. 第20章、OnCheckedChangeListener事件(从零开始学Android)
  9. Android零基础入门第35节:Android中基于回调的事件处理

随机推荐

  1. Android开发之使用Parcelable对自定义的
  2. IDA 调试SO
  3. 关于Android(安卓)Sensor的文章
  4. Android培训班(16)
  5. android anr分析方法
  6. android APK反编译及代码混淆
  7. android api code 学习之provider包
  8. Android(安卓)如何处理Search下的suggest
  9. Android(安卓)多媒体开发相关技巧
  10. Android开发——Android(安卓)Studio的ND