• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android菜单项内容大全,android菜单项大全

Android菜单项内容大全,android菜单项大全

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 菜单,android侧滑菜单,android menu菜单,android 下拉菜单,android底部菜单栏等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android菜单项内容大全,android菜单项大全


一、介绍:

菜单是许多应用中常见的用户界面组件。

Android3.0版本以前,Android设备会提供一个专用“菜单”按钮呈现常用的一些用户操作,

Android3.0版本以后,取而代之的是提供一个操作栏来完成“菜单”的功能

关于菜单的官方介绍:<https://developer.android.com/guide/topics/ui/menus.html>

二、分类:

1、OptionsMenu(选项菜单)

              

Android 2.3.X或更低版本                   Android3.0及更高版本

 

Android 2.3.X或更低版本,当用户按“菜单”按钮(实体按钮)时,选项菜单的内容会出现在屏幕底部;

Android3.0及更高版本,则选项菜单中的项目将出现在操作栏中。默认情况下,系统会将所有项目均放入操作溢出菜单中。用户可以使用操作栏右侧的操作溢出菜单图标(或者,通过按设备“菜单”按钮(如有))显

示操作溢出菜单。但是可以通过在tem中android:showAsAction = “ifRoom”将菜单选项直接提升到操作栏中去显示。

*:并不是所有的app都会有菜单出现在操作栏中的,这取决于app的设计,如果app是需要自己的操作栏,那么根据自己的需求设计,如果是系统默认的操作栏,那么就会有菜单。

  ---通过重写 onCreateOptionsMenu()创建选项菜单,您可以将菜单资源(使用 XML 定义)扩充到回调中提供的 Menu 中:

  Eg:

 

  public boolean onCreateOptionsMenu(Menu menu) {
     getMenuInflater().inflate(R.menu.main, menu);
     //add新增菜单
     menu.add("新增选项菜单");
     //效果一样,都直接加的一级菜单
     menu.addSubMenu("新增选项菜单子菜单");
     //查询修改属性
     menu.findItem(R.id.action_settings).setTitle("设置");
     return true;
  }

 

  ---处理点击事件:用户从选项菜单中选择项目(包括操作栏中的操作项目)时,系统将调用 Activity 的 onOptionsItemSelected() 方法。此方法将传递所选的 MenuItem。您可以通过调用 getItemId() 方法来

识别项目,该方法将返回菜单项的唯一 ID,您可以将此 ID 与已知的菜单项匹配,以执行适当的操作。

  Eg:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.new_game:
            newGame();
            return true;
        case R.id.help:
            showHelp();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

2、ContextMenu(上下文菜单)

上下文菜单提供了许多操作,这些操作影响 UI 中的特定项目或上下文框架。您可以为任何视图提供上下文菜单,但这些菜单通常用于 ListView、GridView 或用户可直接操作每个项目的其他视图集合中的项目。

Android系统提供上下文操作的方法有2种:

(1)使用浮动上下文菜单

用户长按(按住)一个声明支持上下文菜单的视图时,菜单显示为菜单项的浮动列表(类似于对话框)。 用户一次可对一个项目执行上下文操作。比如:

创建浮动上下文菜单步骤:

1、通过调用 registerForContextMenu(),绑定菜单给具体的view。如果view是listview或者gridview,那么菜单将绑定给所有item。

2、在 Activity 中实现 onCreateContextMenu() 方法。
  当注册后的视图收到长按事件时,系统将调用您的 onCreateContextMenu() 方法。在此方法中,您通常可通过扩充菜单资源来定义菜单项。比如:

3、实现 onContextItemSelected()。用户选择菜单项时,系统将调用此方法,以便您能够执行适当的操作。 例如:

  public boolean onContextItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     case R.id.context_menu_1:
       Toast.makeText(getApplicationContext(), "选择菜单1,你要做什么,自己做...", 0).show();
       return true;
     default:
       return super.onContextItemSelected(item);
     }
  }
(2) 使用上下文操作模式

将在屏幕顶部显示上下文操作栏,其中包括影响所选项的操作项目。当此模式处于活动状态时,用户可以同时对多项执行操作(如果应用允许)。比如:

创建上下文操作模式菜单步骤:

A:为单个视图启用上下文操作模式

1:实现ActionMode.Callback接口。在其回调方法中,您既可以为上下文操作栏指定操作,又可以响应操作项目的点击事件。

2:当需要显示操作栏时(例如,用户长按视图),调用startActionMode()。比如:

 

 private ActionMode.Callback  mActionModeCallback = new ActionMode.Callback() {
   
   /**
    * onCreateActionMode()之后调用,返回false表示什么也不做。
    */
   @Override
   public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
     return false;
   }
   @Override
   public void onDestroyActionMode(ActionMode mode) {
     //方便内存回收
     actionMode = null;
   }
   
   /**
    * 当actionmode被创建,startActionMode()方法被调用,回调此方法
    * 在这里可以为上下文操作模式绑定菜单
    */
   @Override
   public boolean onCreateActionMode(ActionMode mode, Menu menu) {
     MenuInflater menuInflater = mode.getMenuInflater();
     menuInflater.inflate(R.menu.context_menu, menu);
     return true;
   }
   
   /**
    * 当actionMode绑定的上下文菜单被点击的时候的回调
    */
   @Override
   public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
     switch (item.getItemId()) {
     case R.id.context_menu_1:
        //选中菜单1,我就把button2的文字改一下好了..
        button2.setText(item.getTitle());
        //完成菜单的任务之后,最好销毁一下actionMode对象,不要长期占用内存
        actionMode.finish();
        return true;
     default:
        return false;
     }
   }
};

B:在 ListView 或 GridView 中有一组项目(或 AbsListView 的其他扩展),且需要允许用户执行批处理操作。

步骤:
1:使用 setMultiChoiceModeListener()设置AbsListView.MultiChoiceModeListener 接口的实现类对象。
2:使用 setChoiceMode()设置选择模式为 CHOICE_MODE_MULTIPLE_MODAL;

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

Eg:

lv = (ListView) findViewById(R.id.lv);
     strings = new ArrayList<String>();
     strings.add("item1");
     strings.add("item2");
     strings.add("item3");
 
     adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, strings);
     lv.setAdapter(adapter);
     // 设置上下文操作模式
     lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
     lv.setMultiChoiceModeListener(new MultiChoiceModeListener() {
 
       @Override
       public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
          return false;
       }
 
       @Override
       public void onDestroyActionMode(ActionMode mode) {
 
       }
 
       @Override
       public boolean onCreateActionMode(ActionMode mode, Menu menu) {
          MenuInflater menuInflater = mode.getMenuInflater();
          menuInflater.inflate(R.menu.context_menu, menu);
          return true;
       }
 
       @Override
       public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
          Log.v("zoubo", "onActionItemClicked..");
          switch (item.getItemId()) {
          case R.id.context_menu_1:
            // 选中菜单1,新增一个item
            strings.add("item4");
            adapter.notifyDataSetChanged();
            // 局部的mode,不需要维护其生命周期
            // mode.finish();
            return true;
          default:
            return false;
          }
       



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android菜单项内容大全,android菜单项大全

相关文章

  • 2017-05-26Android端 配置极光推送
  • 2017-05-26Unity Android 真机调试,unityandroid
  • 2017-05-26自动匹配关键字并且标红,匹配关键字标红
  • 2017-05-26追踪表满导致keepalived vip 不通!
  • 2017-05-26Android电池电量跳变,android电池电量
  • 2017-05-26AsyncTask.cancel()的结束问题,asynctaskcancel
  • 2017-05-26svn环境搭建(不同目录、设置不同的权限)
  • 2017-05-26java中random随机函数的一些理解
  • 2017-05-26活动的生周期(四)活动结束前的数据保存,周期活动结束
  • 2017-05-26Android Studio 2.0下创建jni应用调用本地C函数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SIMLock锁卡功能解析,simlock锁解析
    • Android MediaPlayer 音乐播放
    • Android实用工具类-GrallyAndPhotoUtils图片处理工具
    • React-Native系列Android——Touch事件原理及状态效果
    • ListView和Adapter的配合使用以及Adapter的重写,listviewadapter
    • 三种POST和GET的提交方式,postget提交
    • 在Android Studio中安装OpenCV mac环境/Linux环境
    • 安卓--shape简单使用,安卓--shape
    • 安卓第十一天笔记-Intent与inter-filter配置,intentfilter
    • AndroidStudio项目提交(更新)到github最详细步骤

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有