(1)Menu 菜单

菜单分为三种(1)系统菜单:OptionMenu        当点击手机菜单键时弹出来的菜单

                        (2)上下文菜单:ContextMenu         比如当长按listView后弹出来的菜单键

                        (3)弹出菜单 :PopupMenu         当点击之后弹出来的菜单


(1)系统菜单设置步骤:

                      <1>首先在需要菜单的Activit生成回调方法:

                                                                       onCreateOptionsMenu(Menu menu)   (这个方法一般在创建项目的时候在MainActivity中生成,就不赘述了

                    <2>生成菜单上的每个item元素

                                        在res文件-------menu文件夹---------main.xml   中进行声明菜单的item

                     <3>为每个item设置监听事件

                                           调用方法:onOptionItemSelected(MenuItem item)

      

                                  {switch (item.getItemId()) {                                   case R.id.action_settings:                                        // 点击时显示系统的设置界面                                   startActivity(new Intent(Settings.ACTION_SETTINGS));                                        break;                                       case R.id.action_add:                                   // 点击时放大TextView上的字体                                   textView.setTextSize(textView.getTextSize() + 5);                                         break;                                 case R.id.action_sub:                                    textView.setTextSize(textView.getTextSize() - 5);                                     break;                                        }                                    return super.onOptionsItemSelected(item);                                     }
假如需要在菜单中设置图标则需要设置
// 为系统菜单项添加图标// enable为true时,菜单添加图标有效,enable为false时无效。4.0+系统默认无效private void setIconEnable(Menu menu, boolean enable) {try {Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder");Method m = clazz.getDeclaredMethod("setOptionalIconsVisible",boolean.class);m.setAccessible(true);// MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征)m.invoke(menu, enable);} catch (Exception e) {e.printStackTrace();}}

(2)上下文菜单(ContextMenu)

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.textView);// 1:给需要上下文菜单的UI视图注册上下文菜单// 当在textView上长按时会出现上下文菜单 ---会去回调创建上下文菜单的方法onCreateContextMenuregisterForContextMenu(textView);}// 2:创建上下文菜单// menu接收的是上下文菜单对象,由系统创建// v接收的被注册了上下文菜单的视图对象@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// 创建菜单项对象并加入到上下文菜单对象中(menu)getMenuInflater().inflate(R.menu.main, menu);super.onCreateContextMenu(menu, v, menuInfo);}// 3:给上下文菜单项添加事件监听@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()) {此处设置添加监听事件省略}return super.onContextItemSelected(item);}
(3)弹出菜单:PopupMenu

//弹出菜单是从3。0才有的,所以api最低要求是 11public void showPopMenu(View v){//创建弹出菜单对象//第二个参数是弹出菜单显示的参考位置,需要一个视图对象//点击按钮时,让弹出菜单在按钮旁边显示PopupMenu  pop = new PopupMenu(this, v);//把菜单项加入到弹出菜单中getMenuInflater().inflate(R.menu.main, pop.getMenu());//给菜单项添加事件监听pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {//这里与前两个switch一致return false;}});//显示菜单pop.show();}




更多相关文章

  1. Android之Menu选项菜单
  2. Android监听程序进入后台,或者恢复到前台
  3. [UI]抽屉菜单DrawerLayout分析(一)
  4. Android之微信开放平台创建应用
  5. Android(安卓)菜单和对话框等
  6. Android(安卓)- base - SQLite
  7. Android(安卓)Input(一)-相关模块初始化
  8. Android(安卓)判断应用是否在运行以及判断处于顶层的activity
  9. Android文件操作说明

随机推荐

  1. Android下使用OpenGL绘制三角形
  2. Android UI开发第二十九篇——Android中
  3. Android RadioButton设置选中时文字和背
  4. Android入门前言(一)之------Android应用
  5. Android(安卓)异步消息处理机制 深入理解
  6. shape基本用法及全部属性定义
  7. Android studio使用技巧(二:国际化以及代码
  8. Activity组件的启动过程
  9. Android源码下载——用git clone实现单个
  10. 谷歌全新操作系统Pigweed曝光,Android(安