Android—菜单
layout文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.testapp2.TestActivity3"
android:orientation="vertical"> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮"
android:id="@+id/bt_1"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="上下文菜单按钮"
android:id="@+id/bt_2"/>
</LinearLayout>
java类代码(bt_1代码可不看,bt_2代码为菜单属性相关):
package com.hanqi.testapp2; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast; public class TestActivity3 extends AppCompatActivity { Button bt_1;
Button bt_2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test3);
bt_1 = (Button)findViewById(R.id.bt_1);
bt_2 = (Button)findViewById(R.id.bt_2); //给组件添加上下文菜单 Activity是OnCreateContextMenuListener的实现类
bt_2.setOnCreateContextMenuListener(this); //添加长按监听器
// bt_2.setOnLongClickListener(new View.OnLongClickListener() {
// @Override
// public boolean onLongClick(View v) {
// Toast.makeText(TestActivity3.this, "按钮被长按了", Toast.LENGTH_SHORT).show();
// return true;//后面不再被处理
// }
// });
//点击
bt_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(TestActivity3.this, "按钮被点击了", Toast.LENGTH_SHORT).show();
}
});
//长按
bt_1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(TestActivity3.this, "按钮被长按了", Toast.LENGTH_SHORT).show();
//事件是否已被消费
return true;
}
}); } //重写创建上下文菜单方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//java代码的方式
menu.add(1,0,0, "字体大小");
menu.add(1, 1, 1, "背景颜色"); //添加子菜单
SubMenu sm = menu.addSubMenu(1, 2, 3, "子菜单");
sm.add(2,21,0,"子菜单1");
sm.add(2,22,0,"子菜单2");
//加载文件的方式
MenuInflater m = getMenuInflater();
m.inflate(R.menu.test3_menu, menu);
} @Override
public boolean onContextItemSelected(MenuItem item) {
Toast.makeText(TestActivity3.this, "上下文菜单的title = "+item.getTitle(), Toast.LENGTH_SHORT).show();
return super.onContextItemSelected(item);
} //给activity天津选项菜单
//重写
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//添加菜单
// menu.add(1,1,0,"添加");
// menu.add(1,2,2,"修改");
// menu.add(1,3,1,"删除"); //加载菜单文件的方式
//1-活动菜单加载器
MenuInflater m = getMenuInflater();
//2-加载菜单文件 1)菜单文件 2)当前菜单
m.inflate(R.menu.test3_menu,menu);
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Toast.makeText(TestActivity3.this, "菜单项的id = "+item.getItemId()+
// "菜单项的title = "+item.getTitle(), Toast.LENGTH_SHORT).show(); //怎么判断菜单文件里的菜单哪个被选中了
if(item.getItemId() == R.id.me_1)
{
Toast.makeText(TestActivity3.this, "执行删除动作", Toast.LENGTH_SHORT).show();
}
else if(item.getItemId() == R.id.me_2)
{
Toast.makeText(TestActivity3.this, "执行修改动作", Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
}
效果图为:



附相关思维导图:

Android—菜单的更多相关文章
- Android菜单详解(四)——使用上下文菜单ContextMenu
之前在<Android菜单详解(二)——创建并响应选项菜单>和<Android菜单详解(三)——SubMenu和IconMenu>中详细讲解了选项菜单,子菜单和图标菜单.今天接 ...
- Android菜单详解(一)——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- 【转】Android菜单详解——理解android中的Menu--不错
原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...
- Android菜单(动画菜单、360波纹菜单)
Android菜单(动画菜单.360波纹菜单) 前言:Android菜单常用集合:FragmentTabHost系统菜单.上移式菜单.360波纹菜单.展开式菜单.详解注释,可直接拿来用! 效果: ...
- Android菜单
Android菜单概述 菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径.Android提供了一个简单的框架来向程序中添加标准菜单 . 一.创建一个菜单资源 你需要在一个XML ...
- Android菜单(menu)
Android 菜单 我们继续来进行学习,今天写一下在软件中用的还算较多的菜单. 1.Menu 菜单,很显然,作用就是点击不同的选项触发不同的方法.现在在安卓使用中推荐使用ActionBar,但这里 ...
- Android菜单项内容大全
一.介绍: 菜单是许多应用中常见的用户界面组件. Android3.0版本以前,Android设备会提供一个专用"菜单"按钮呈现常用的一些用户操作, Android3.0版本以后, ...
- Android菜单Menu的创建
在res目录下的menu文件夹下创建一个main.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> ...
- Android 菜单(OptionMenu)
菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 一.概述 ...
随机推荐
- error: unknown field 'ioctl' specified in initializer
error message: 原因: 从2.6.36开始,file_operations结构发生了重大变化 具体看 xx../include/linux/fs.h定义: 取消了原先的 int (*i ...
- android开机启动过程
Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...
- java中利用JFrame创建窗体 【转】
1. 一个简单的swing public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame ...
- linux基础命令学习(三)Vim使用
1. # vim 1.txt 命令模式: a i o A I O x X yy dd p G dw de h j k l f H M B a --- append 追加 在光标所在位置后追加一个字符 ...
- WEB ui快速构建
http://www.runoob.com/bootstrap/bootstrap-ui-editor.html 1http://pingendo.com/ 2http://www.layoutit. ...
- PHP内置的字符串处理函数
字符串的特点 1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...
- Thread和Service应用场合的区别
Thread和Service的区别: 1) Thread 是程序执行的最小单元,它是分配CPU的基本单位,可以用 Thread 来执行一些异步的操作. 如果是Local Service,那么对应的 S ...
- Unity3D ShaderLab 基础的高光实现
Unity3D ShaderLab 基础的高光实现 关于高光: 在一个物体表面的高光属性就是为了描述它是如何表现光泽.这种类型的效果在着色器的世界中通常称为视点相关效果. 之所以这样说,是因为为了实现 ...
- 【avalon】createMap
/** * Creates a new object without a prototype. This object is useful for lookup without having to * ...
- 在KCloud上轻松“玩转”Docker
继CoreOS和Atomic镜像上线之后,刻通云紧跟Docker技术发展脚步,近期又推出了Ubuntu Core镜像,成为国内首家支持Ubuntu Core镜像的基础云服务商,同时也是国内唯一一家同时 ...