android menu点击事件6,Android Menu
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相关推荐
- android root点击事件,在Android中使用InputManagerService进行事件传递
在Android中使用InputManagerService进行事件传递 发布时间:2020-11-25 16:47:31 来源:亿速云 阅读:67 作者:Leah 在Android中使用InputM ...
- Android对点击事件的处理
前两天想研究下Android点击事件是如何处理的,翻译了一篇国外文件,英文原版下载地址附在文后. Android怎样处理点击事件 Android的点击事件封装在MotionEvent中,点击事件可以分 ...
- Android扩大点击事件接收区域范围
Android扩大点击事件接收区域范围 如果有些icon或者ImageView,这些View本身很小,就扩大这些事件的接收区域.直接传入需要扩大事件接收区域的view,也可以自定义指定扩大多少尺寸si ...
- 一文带你了解各种方式实现Android的点击事件
文章目录 第一种方法:通过布局文件中控件的属性 第二种方法:通过内部实现类 第三种方法:通过Activity实现OnClickLitener, 第四种方法:使用匿名内部类 总结: 摘要: Andr ...
- android imageview 点击事件,Android ImageView点击效果
ImageView设置点击效果需要注意两点,第一个设置android:clickable="true",第二个 属性必须放到最后才能生效 android:id="@+id ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- android 响应点击事件,Android响应事件onClick方法的五种实现方式小结
在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法.下面以Button按钮来举例说明. 方法一: 适合场景:任何场景都通用, ...
- Android实现点击事件的4种方式
一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在 activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...
- android按钮点击事件(多种方法实现)
上代码: package com.hsj.example.uicontroldemo01;import android.os.Bundle; import android.support.v7.app ...
最新文章
- node建立博客系统遇到的问题,1,乱码。2,multer的使用错误。3使用session问题...
- 29 个你必须知道的 Linux 命令
- Project Euler Problem 9-Special Pythagorean triplet
- python按字节读取_Python read函数按字节(字符)读取文件的实现
- 选择题_一级造价师选择题的分值是多少
- doctype声明、浏览器的标准、怪异等模式
- docker常用参数详解,docker run常用参数详解(精)
- 添加文字 生成pdf_PDF 文件编辑方法和工具大全
- iStream DDS
- 程序员面试金典——18.13 最大字母矩阵
- mysql vc调用时内存错误
- php起点小说小偷程序,PHP 简单的小偷程序
- python处理excel格式变化,分类,归类,行变列
- 怎么把本地rpm包导入linux,Linux在本地yum源中增加rpm包(示例代码)
- VB中Byval和byref的区别
- 区块数据存储文件说明
- maven deploy
- 查询分析器里查看执行计划
- Tekton task入门上
- 深圳计算机中级职称入户,深圳积分入户中级职称积分,这些证书助你轻松入户!...
热门文章
- 使用python中的socket实现服务器和客户端,并完成图片的传输
- cuda9.1 tensorflow1.6
- sh ndk-build.cmd command not found
- 二.MongoDB特点
- 为全局变量赋值_Postman全局变量设置和运用
- jupyter代码字体大小_你可能并不知道这样定制炫酷的jupyter主题
- 服务器支持curl,互联网要点:服务器不支持curl_exec的解决办法
- 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
- 查询用户所有信息后只需要两个字段的信息_Excel VBA+ADO+SQL入门教程023:OpenSchema获取表信息...
- linux线程关闭信号,Linux/UNIX用同步方法处理异步信号