Android菜单的几种方法
2015-11-05 00:00
671 查看
摘要: 根据自己的理解和学习慕课网基础敲得。从网易云笔记倒过来的
1.动态的添加菜单栏,然后创建菜单栏的点击事件
2.将菜单栏写在menu文件夹中然后 调用
main 文件
上下文的菜单栏菜单栏(长按弹出的菜单栏)
1.创建listview
2.确定上下文菜单(注册菜单,添加菜单内容(两种方法))
3.添加点击相应事件事件
加载xml文件
动态的添加
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 | public boolean onCreateOptionsMenu(Menu menu) { // 动态添加菜单 MenuItem item =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, "菜单四"); return true; &nbs 3ff0 p; } // 点击监听事件 将每个菜单栏绑定 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 100: //跳转到一个页面 Intent intent = new Intent(MainActivity.this,SecondActivity.class); item.setIntent(intent); break; case 101: Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_LONG) .show(); break; case 102: Toast.makeText(MainActivity.this, "点击了菜单三", Toast.LENGTH_LONG) .show(); break; case 103: Toast.makeText(MainActivity.this, "点击了菜单四", Toast.LENGTH_LONG) .show(); break; } return super.onOptionsItemSelected(item); } |
main 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <menu xmlns: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 | public boolean onCreateOptionsMenu(Menu menu) { Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // 点击监听事件 将每个菜单栏绑定 public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.action_menu_item1: //跳转到一个页面 Intent intent = new Intent(MainActivity.this,SecondActivity.class); item.setIntent(intent); break; case R.id.action_menu_item2: Toast.makeText(MainActivity.this, "点击了菜单四", Toast.LENGTH_LONG) .show(); break; } return super.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 | <menu xmlns: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 | public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** * 设置listview的显示内容 */ private void showListView() { ListView listview = (ListView) findViewById(R.id.showListView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); listview.setAdapter(adapter); this.registerForContextMenu(listview);// 注册上下文菜单 } /** * 设置具体的菜单项 */ @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); // 设置menu显示的内容 menu.setHeaderTitle("文件操作"); menu.setHeaderIcon(R.drawable.ic_launcher); MenuInflater inflater = getMenuInflater(); // 把menu中的菜单main添加到菜单栏 inflater.inflate(R.menu.main, menu); } /** * 菜单的注册事件 */ @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.action_item1: Toast.makeText(this, "复制中", Toast.LENGTH_LONG).show(); break; case R.id.action_item2: Toast.makeText(this, "粘贴中", Toast.LENGTH_LONG).show(); break; case R.id.action_item3: Toast.makeText(this, "剪贴中", Toast.LENGTH_LONG).show(); break; case R.id.action_item4: Toast.makeText(this, "重命名中", Toast.LENGTH_LONG).show(); break; } return super.onContextItemSelected(item); } /** * 构造listview显示的数据 * * @return */ private ArrayList<String> getData() { ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < 5; i++) { list.add("文件" + (i + 1)); } return list; } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } |
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 | protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showListView(); } /** * 设置listview的显示内容 */ private void showListView() { ListView listview = (ListView) findViewById(R.id.showListView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); 3ff0 listview.setAdapter(adapter); this.registerForContextMenu(listview);// 注册上下文菜单 } /** * 设置具体的菜单项 */ @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub 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 public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case 1: Toast.makeText(this, "复制中", Toast.LENGTH_LONG).show(); break; case 2: Toast.makeText(this, "粘贴中", Toast.LENGTH_LONG).show(); break; case 3: Toast.makeText(this, "剪贴中", Toast.LENGTH_LONG).show(); break; case 4: Toast.makeText(this, "重命名中", Toast.LENGTH_LONG).show(); break; } return super.onContextItemSelected(item); } /** * 构造listview显示的数据 * * @return */ private ArrayList<String> getData() { ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < 5; i++) { list.add("文件" + (i + 1)); } return list; } @Override public boolean onCreateOptionsMenu(Menu menu) { Inflate the menu; this adds items to the action bar if it is present. return true; } |
百度云demo地址:http://pan.baidu.com/s/1gdJeum3
相关文章推荐
- Android内的动画两种
- 布局的笔记
- 一次性退出所有avtivity
- 【Anroid进阶】SQLite数据库使用完全详解
- android_LayoutInflater
- android_SQLite
- android_判断横竖屏以及设置方式
- android_SpannableString
- android_BroadcastReceiver
- android 的基础体系架构浅述
- android小笔记
- 【Android基础】textview改变一部分文字的颜色和string.xml中文字的替换
- Android基础知识之四大组件Activity(四)保存Activity的状态
- Android基础知识之四大组件Activity(三)多个Activity交互的生命周期与设计思想
- Android基础知识之四大组件Activity(二)一个Activity的生命周期?
- Android基础知识之四大组件Activity(一)什么是Activity?
- Android基础开始进阶提升方案
- Android 操作XML
- android 四大组件之一 BroadcastReceiver 广播接收者
- android学习笔记