Android Menu

1.Android Menu(菜单)分为两种

选项菜单 OptionMenu

上下文菜单ContextMenu

2. 实现目录的基本操作

在xml文件中定义布局文件

重写onCreateOptions(或Context)Menu,创建目录

重写onOptions(或Context)ItemSelected,响应目录的点击事件

3. 目录xml文件的定义

android:id="@+id/menu_id"

android:title="menu_title"

/>

......

代码1

4. Android Menu的主要方法

4.1 OptionMenu(选项菜单)

> onCreateOptionsMenu(Menu menu

创建OptionsMenu

> onOptionsItemSelected(MenuItem Item)

监听OptionsMenu的点击事件

4.2 ContextMenu(上下文菜单)

> onCreateContextMenu(Menu menu )

创建ContextMenu

> onContextItemSelected(MenuItem Item)

监听ContextMenu的点击事件

> registerForContextMenu

注册ContextMenu,在onStart中

> unRegisterForContextMenu

注销ContextMenu,在onStop中

> openContextMenu

在希望ContextMenu出现时调用,打开ContextMenu

5. 覆写Menu方法的注意事项

覆写onCreateContextMenu或onCreateOptionsMenu时,一定要写getMenuInflater.inflate(R.Menu.你需要的xml文件 ,menu )

在覆写Selected方法时,常使用getItemId和switch方法

在onStart中使用registerForContextMenu

在onStop中使用unRegisterForContextMenu

5.1 代码展示(以OptionsMenu为例)

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu,menu);

//R.menu.menu是自己创建的目录xml文件

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

switch ( id ){

case R.id.menu_1 :

Toast.makeText(MainActivity.this,"you click menu_1" ,Toast.LENGTH_LONG).show();

break;

case R.id.menu_2 :

Toast.makeText(MainActivity.this,"you click menu_2" ,Toast.LENGTH_LONG).show();

break;

default:

break;

}

return true;

}

代码2

6. OptionsMenu(选项目录)

optionsMenu的实现比较简单,注意点上面已提,且所要展示的代码就是代码2,此处仅补充目录xml文件代码

android:id="@+id/menu_1"

android:title="111"

/>

android:id="@+id/menu_2"

android:title="222"

/>

7. ContextMenu(上下文目录)

7.1 Contextmenu分为两种

长按某个控件弹出

自定义上下文目录的弹出模式,如在单击中弹出

7.2 长按控件弹出

在onStart方法中加入registerForContextMenu为指定控件注册上下文菜单

在onStop方法中加入unregisterForContextMenu注销上下文菜单

长按控件弹出和自定义弹出相比,只是多出了openContextMenu方法的调用,所以此处代码省略,去掉下述代码中调用openContextMenu处即可

7.3 自定义弹出模式

在onStart方法中加入registerForContextMenu为指定控件注册上下文菜单

在相应的方法中加入openContextMenu,如在onClickListener中加入,在单击事件中弹出

在onStop方法中加入unregisterForContextMenu注销上下文菜单

想在什么事件中弹出ContextMenu,就在哪里调用openContextMenu()

7.4 代码展示(单击事件中弹出上下文目录)

public class MainActivity extends AppCompatActivity {

Button button;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.main_but);

//在单击事件中调用openContextMenu

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

openContextMenu(button);

}

});

}

//定义ContextMenu的创建方法

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

getMenuInflater().inflate(R.menu.menu,menu);

}

@Override

protected void onStart() {

super.onStart();

registerForContextMenu(button);

//注册ContextMenu

}

@Override

protected void onStop() {

super.onStop();

unregisterForContextMenu(button);

//取消注册ContextMenu

}

}

android menu点击事件6,Android Menu相关推荐

  1. android root点击事件,在Android中使用InputManagerService进行事件传递

    在Android中使用InputManagerService进行事件传递 发布时间:2020-11-25 16:47:31 来源:亿速云 阅读:67 作者:Leah 在Android中使用InputM ...

  2. Android对点击事件的处理

    前两天想研究下Android点击事件是如何处理的,翻译了一篇国外文件,英文原版下载地址附在文后. Android怎样处理点击事件 Android的点击事件封装在MotionEvent中,点击事件可以分 ...

  3. Android扩大点击事件接收区域范围

    Android扩大点击事件接收区域范围 如果有些icon或者ImageView,这些View本身很小,就扩大这些事件的接收区域.直接传入需要扩大事件接收区域的view,也可以自定义指定扩大多少尺寸si ...

  4. 一文带你了解各种方式实现Android的点击事件

    文章目录 第一种方法:通过布局文件中控件的属性 第二种方法:通过内部实现类 第三种方法:通过Activity实现OnClickLitener, 第四种方法:使用匿名内部类 总结: 摘要:   Andr ...

  5. android imageview 点击事件,Android ImageView点击效果

    ImageView设置点击效果需要注意两点,第一个设置android:clickable="true",第二个 属性必须放到最后才能生效 android:id="@+id ...

  6. android 点击事件消费,Android View事件分发和消费源码简单理解

    Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...

  7. android 响应点击事件,Android响应事件onClick方法的五种实现方式小结

    在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法.下面以Button按钮来举例说明. 方法一: 适合场景:任何场景都通用, ...

  8. Android实现点击事件的4种方式

    一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在   activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...

  9. android按钮点击事件(多种方法实现)

    上代码: package com.hsj.example.uicontroldemo01;import android.os.Bundle; import android.support.v7.app ...

最新文章

  1. node建立博客系统遇到的问题,1,乱码。2,multer的使用错误。3使用session问题...
  2. 29 个你必须知道的 Linux 命令
  3. Project Euler Problem 9-Special Pythagorean triplet
  4. python按字节读取_Python read函数按字节(字符)读取文件的实现
  5. 选择题_一级造价师选择题的分值是多少
  6. doctype声明、浏览器的标准、怪异等模式
  7. docker常用参数详解,docker run常用参数详解(精)
  8. 添加文字 生成pdf_PDF 文件编辑方法和工具大全
  9. iStream DDS
  10. 程序员面试金典——18.13 最大字母矩阵
  11. mysql vc调用时内存错误
  12. php起点小说小偷程序,PHP 简单的小偷程序
  13. python处理excel格式变化,分类,归类,行变列
  14. 怎么把本地rpm包导入linux,Linux在本地yum源中增加rpm包(示例代码)
  15. VB中Byval和byref的区别
  16. 区块数据存储文件说明
  17. maven deploy
  18. 查询分析器里查看执行计划
  19. Tekton task入门上
  20. 深圳计算机中级职称入户,深圳积分入户中级职称积分,这些证书助你轻松入户!...

热门文章

  1. 使用python中的socket实现服务器和客户端,并完成图片的传输
  2. cuda9.1 tensorflow1.6
  3. sh ndk-build.cmd command not found
  4. 二.MongoDB特点
  5. 为全局变量赋值_Postman全局变量设置和运用
  6. jupyter代码字体大小_你可能并不知道这样定制炫酷的jupyter主题
  7. 服务器支持curl,互联网要点:服务器不支持curl_exec的解决办法
  8. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  9. 查询用户所有信息后只需要两个字段的信息_Excel VBA+ADO+SQL入门教程023:OpenSchema获取表信息...
  10. linux线程关闭信号,Linux/UNIX用同步方法处理异步信号