• Android中菜单的使用


    菜单(Menu)
    -----------------------------
    一、OptionsMenu(选项菜单/系统菜单)
    创建方式:
    1) 通过resmenu下的XML文件配置,并在Activity的onCreateOptionsMenu()方法中加载,配置时,应该至少配置id、orderInCategory、title属性
    2) 在Activity的onCrateOptionsMenu()方法中,通过参数Menu的add()方法添加
    响应方法:
    1) 明确每个菜单项的id
    2) 重写Activity的onOptionsItemSelected()方法,对参数MenuItem进行判断后进行响应
    二、SubMenu(子菜单)
    创建方式:
    1) 在resmenu下的XML文件中,为一级菜单的<item>节点添加子级<menu>节点,并在<menu>节点下使用若干个<item>节点配置若干个子级菜单,配置方法与一级菜单的配置完全相同
    2) 在Activity的onCreateOptionsMenu()方法中,使用addSubMenu()添加出可以存在子级菜单的一级菜单,并获取调用该方法时的返回值,返回值类型为SubMenu,然后通过该返回值继续调用若干次add()方法,以创建若干个子级菜单
    Ps:菜单项的响应不区分菜单项的级别,所以,子菜单的响应与普通菜单的完全相同
    3) ContextMenu(上下文菜单)
    特点:
    >> 上下文菜单是通过长按某个控件后弹出的菜单
    >> 上下文菜单必须通过registerForContextMenu()方法注册到控件之上,对应的控件才会有上下文菜单
    创建方法:
    通过重写Activity的onCreateContextMenu()方法可以创建上下文菜单,具体创建过程与创建OptionsMenu相同
    可以为多个控件都注册上下文菜单,当创建时,则根据onCreateContextMenu()的第2个参数View判断是由长按了哪个控件导致需要上下文菜单,从而决定创建出不同的菜单项
    响应方法:
    通过重写Activity的OnContextItemSelected()方法可以响应上下文菜单的选择
    在AdapterView上的应用:
    a) 注册上下文菜单时,为整个AdatperView(例如ListView或GridView)注册上下文菜单
    2) 创建上下文菜单时,可以根据onCreateContextMenu()方法的第3个参数ContextMenuInfo向下转型为AdapterContextMenuInfo,然后获取该对象的position属性,即表示创建第几个列表项对应的上下文菜单
    3) 响应上下文菜单里,可以把第2个步骤中得到的position提升为全局变量,则响应时可以直接获取列表项的位置信息,或者,根据OnContextItemSelected()方法的参数调用getMenuInfo()得到ContextMenuInfo对象,然后向下转型为AdapterContextMenuInfo,再获取position值,最后,进行处理,这2种响应方法的实现效果是相同的。

  • 相关阅读:
    2021.1.20 学习总结
    2021.1.19 学习总结
    2021.1.18 学习总结
    学习总结13
    学习总结12
    学习总结11
    学习总结10
    ASP.NET网站开发步骤
    学习总结9
    阅读笔记4
  • 原文地址:https://www.cnblogs.com/fighting9527/p/5245279.html
Copyright © 2020-2023  润新知