android中常用菜单(menu)的基本知识
来源:互联网 发布:print is python 编辑:程序博客网 时间:2024/06/04 01:06
(一)选项菜单
1、简单的创建菜单:
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); // 添加菜单 menu.add("菜单选项1"); /* * pram1:组号 pram2:唯一的ID号 pram3:排序号 pram4:标题 */ menu.add(1, Menu.FIRST, Menu.FIRST, "菜单选项2"); // 希望显示菜单就返回true return true; }
2、菜单的分组以及简单属性:
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); int group1 = 1; int group2 = 2; menu.add(group1, 1, 1, "item1"); menu.add(group1, 2, 2, "item2"); menu.add(group2, 3, 3, "item3"); menu.add(group2, 4, 4, "item4"); // menu.removeGroup(group1);//删除一个组 // menu.setGroupVisible(group1, false);//设置可见性 // menu.setGroupEnabled(group2, false);//设置是否可点 // menu.setGroupCheckable(group2, true, t);//设置一组菜单的勾选情况 return true; }
3、响应菜单
一、通过onOptionsItemSelected方法
@Override public boolean onOptionsItemSelected(MenuItem item) { // 响应每个菜单项(通过菜单项的ID) switch (item.getItemId()) { case 1: // do something here break; case 2: // do something here break; case 3: // do something here break; case 4: Toast.makeText(this, "hello", 0).show(); break; default: // 对没有处理的事件,交给父类来处理 return super.onOptionsItemSelected(item); } //返回true表示处理完菜单项的事件,不需要将该事件继续传播下去了 return true; }
二、通过监听
//第一步:创建监听器类class MyMenuItemClickListener implements OnMenuItemClickListener { @Override publicboolean onMenuItemClick(MenuItem item) { // do something here... return true; //finish handling }}//第二步:为菜单项注册监听器menuItem.setOnMenuItemClickListener(new MyMenuItemClickListener());
三、通过Intent
(二)子菜单subMenu
注意:Menu可以包含多个SubMenu及menuItem,SubMenu可以包含多个MenuItem,,但是SubMenu不能包含SubMenu。
@Override public boolean onCreateOptionsMenu(Menu menu) { //一个menu中可以添加多个子菜单 SubMenu subMenu=menu.addSubMenu(1,1, 0, "子菜单"); //在子菜单中添加多个菜单选项 MenuItem menuItem1=subMenu.add(1, 1, 0, "菜单选项1"); subMenu.add(1, 2, 1,"菜单选项2"); subMenu.add(1, 3, 2,"菜单选项3"); subMenu.add(1, 4, 3,"菜单选项4"); //子菜单不支持显示图标,尽管这样设置不会报错 subMenu.setIcon(R.drawable.ic_launcher); //设置菜单选项的图标 menuItem1.setIcon(R.drawable.ic_launcher); return true; }
(三)上下文菜单ContextMenu
package com.zzw.contextMenu;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity { private static final String TAG = "MainActivity"; ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, "onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView); simpleShowList(); //1.在activity的onCreate方法中为一个view注册上下文菜单 this.registerForContextMenu(listView); } //2.在onCreateContextMenu中生成上下文菜单。 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { Log.d(TAG, "onCreateContextMenu_start"); menu.setHeaderTitle("上下文菜单标题"); menu.add(0, 1, 0, "选项1"); menu.add(0, 2, 0, "选项2"); menu.add(0, 3, 0, "选项3"); Log.d(TAG, "onCreateContextMenu_stop"); } //3.在onContextItemSelected中响应上下文菜单项。 @Override public boolean onContextItemSelected(MenuItem item) { Log.d(TAG, "onContextItemSelected_start"); int item_id = item.getItemId(); switch (item_id) { case 1: Toast.makeText(this, "我是上下文菜单选项1", 0).show(); break; case 2: break; case 3: break; default: return super.onContextItemSelected(item); } Log.d(TAG, "onContextItemSelected_stop"); return true; } private void simpleShowList() { Log.d(TAG, "simpleShowList_start"); String[] showList = { "显示1", "显示2", "显示3", "显示4" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, showList); listView.setAdapter(adapter); Log.d(TAG, "simpleShowList_stop"); }}
(四)通过XML文件添加菜单
1.在res文件下创建menu文件夹,一般默认有的,在里面new出一个Android xml File来编辑自己的菜单
2.编辑自己的xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- group是分组 --> <group android:id="@+id/group1" > <!-- item是一个菜单选项 --> <item android:id="@+id/item1" android:title="菜单选项1(子菜单)"> <!-- 在一个item中添加一个menu就是子菜单 --> <menu> <!-- 子菜单中的菜单选项 --> <item android:icon="@drawable/ic_launcher" android:id="@+id/item1_1" android:title="子菜单内选项1"/> <item android:id="@+id/item1_2" android:title="子菜单内选项2"/> </menu> </item> <item android:id="@+id/item2" android:title="菜单选项2"> </item> </group> <group android:id="@+id/group2" > <item android:id="@+id/item3" android:title="菜单选项4"> </item> <item android:id="@+id/item4" android:title="菜单选项5"> </item> </group></menu>
3.在activity中获取:
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater in = getMenuInflater(); in.inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item1: 13 break; case R.id.item2: break; default: return super.onOptionsItemSelected(item); } return true; }
一些基本的属性:
设置菜单icon
1 <item 2 android:id="@+id/item1"3 android:title="菜单选项1"4 android:icon="@drawable/ic_launcher"5 />
<!-- checkableBehavior设置可选 --> <group android:id="@+id/group1" android:checkableBehavior="all" > <!-- checked设置特定菜单项(被勾中) --> <item android:id="@+id/item1" android:title="菜单选项1" > </item> <item android:id="@+id/item2" android:checked="true" android:title="菜单选项2"> </item> </group>
设置菜单可用不可用android:enable
<group android:id="@+id/group1"> <item android:id="@+id/item1" android:title="菜单选项1" android:enabled="true" > </item> <item android:id="@+id/item2" android:title="菜单选项2" android:enabled="false"> </item> </group>
设置菜单选项是否可见android:visible
<group android:id="@+id/group1"> <item android:id="@+id/item1" android:title="菜单选项1" android:visible="true" > </item> <item android:id="@+id/item2" android:title="菜单选项2" android:visible="false"> </item> </group>
0 0
- android中常用菜单(menu)的基本知识
- Android中五种常用的menu(菜单)
- Android UI开发--Android中五种常用的menu(菜单)
- Android中关于menu(菜单)的创建与使用
- android中menu菜单的简单使用
- Android中Menu 菜单的使用
- Android中Menu菜单的使用
- Android 中右上角菜单创建(Menu)
- android 的Menu菜单
- Android菜单(Menu)
- Android 创建菜单(menu)的总结
- android学习:菜单(Menu)的使用
- Android 中添加menu菜单
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
- Menu菜单(常用型)
- Menu---android菜单(menu)用法
- jqmobi select 动态赋予选项时问题
- 【codevs1246】丑数,STL与取模大质数的好处
- Launcher3源码分析 — ui结构
- zzuoj10434: good string
- Codeforces Round #105 (Div. 2) 148C Terse princess(脑洞)
- android中常用菜单(menu)的基本知识
- 自定义控件(二)
- Cannot add or update a child row: a foreign key constraint fails (`mysql`.`ordermx`, CONSTRAINT `kf
- secureCRT使用rz和sz上传和下载
- 符号表文件小知识
- SpriteBuilder action最小持续时间
- 大文件内字符串排序
- Android studio --导入库文件
- iOS中如何用锁