android- 菜单
选项菜单:menu_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:title="@string/font_size" android:icon="@drawable/daily10">
<menu>
<!-- 定义一组单选菜单项 -->
<group android:checkableBehavior="single">
<!-- 定义多个菜单项 -->
<item
android:id="@+id/font_10"
android:title="@string/font_10"
/>
<item
android:id="@+id/font_12"
android:title="@string/font_12"
/>
<item
android:id="@+id/font_14"
android:title="@string/font_14"
/>
<item
android:id="@+id/font_16"
android:title="@string/font_16"
/>
<item
android:id="@+id/font_18"
android:title="@string/font_18"
/>
</group>
</menu>
</item>
<!-- 定义一个普通菜单项 -->
<item
android:id="@+id/plaint_item"
android:title="@string/plain_item"
/>
<item
android:title="@string/font_color"
android:icon="@drawable/daily5">
<menu>
<!-- 定义一组普通菜单项 -->
<group>
<!-- 定义三个菜单项 -->
<item
android:id="@+id/red_font"
android:title="@string/red_title"
/>
<item
android:id="@+id/green_font"
android:title="@string/green_title"
/>
<item
android:id="@+id/blue_font"
android:title="@string/blue_title"
/>
</group>
</menu>
</item>
</menu>
上下文菜单:context.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 定义一组单选菜单项 -->
<group android:checkableBehavior="single">
<!-- 定义三个菜单项 -->
<item
android:id="@+id/red"
android:title="@string/red_back"
/>
<item
android:id="@+id/green"
android:title="@string/green_back"
/>
<item
android:id="@+id/blue"
android:title="@string/blue_back"
/>
</group>
</menu>
资源文件:strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MyMenu</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="font_size">字体大小</string>
<string name="font_10">10号字体</string>
<string name="font_12">12号字体</string>
<string name="font_14">14号字体</string>
<string name="font_16">16号字体</string>
<string name="font_18">18号字体</string>
<string name="plain_item">普通菜单项</string>
<string name="font_color">选择字体颜色</string>
<string name="red_title">红色字体</string>
<string name="green_title">绿色字体</string>
<string name="blue_title">蓝色字体</string>
<string name="red_back">红色背景</string>
<string name="green_back">绿色背景</string>
<string name="blue_back">蓝色背景</string>
</resources>
MainActivity.java
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView) findViewById(R.id.textView);
//为文本框注册上下文菜单
registerForContextMenu(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/*
*
* */
MenuInflater inflator=new MenuInflater(this);
//装填对应的菜单,并添加到menu中
inflator.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//创建上下文菜单时触发该方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
MenuInflater inflator=new MenuInflater(this);
//装填对应的菜单,并添加到menu中
inflator.inflate(R.menu.context, menu);
menu.setHeaderIcon(R.drawable.daily5);
menu.setHeaderTitle("选择背景颜色");
super.onCreateContextMenu(menu, v, menuInfo);
}
//上下文菜单中菜单项被单击时触发该方法
@Override
public boolean onContextItemSelected(MenuItem item) {
//勾选该菜单项
item.setCheckable(true);
switch(item.getItemId()){
case R.id.red:
item.setCheckable(true);
tv.setBackgroundColor(Color.RED);
break;
case R.id.green:
item.setCheckable(true);
tv.setBackgroundColor(Color.GREEN);
break;
case R.id.blue:
item.setCheckable(true);
tv.setBackgroundColor(Color.BLUE);
break;
}
return super.onContextItemSelected(item);
}
//菜单项被单击后回调方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.isCheckable()){
item.setCheckable(true);
}
switch(item.getItemId()){
case R.id.font_10:
tv.setTextSize(10*2);
break;
case R.id.font_12:
tv.setTextSize(12*2);
break;
case R.id.font_14:
tv.setTextSize(14*2);
break;
case R.id.font_16:
tv.setTextSize(16*2);
break;
case R.id.font_18:
tv.setTextSize(18*2);
break;
case R.id.red_font:
tv.setTextColor(Color.RED);
item.setCheckable(true);
break;
case R.id.green_font:
tv.setTextColor(Color.GREEN);
item.setCheckable(true);
break;
case R.id.blue_font:
tv.setTextColor(Color.BLUE);
item.setCheckable(true);
break;
case R.id.plaint_item:
Toast.makeText(this, "您单机了普通菜单项", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}
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). 一.概述 ...
- Android—菜单
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
随机推荐
- 协处理器,王明学learn
协处理器 协处理器用于执行特定的处理任务,如:数学协处理器可以控制数字处理,以减轻处理器的负担.ARM可支持多达16个协处理器,其中CP15是最重要的一个. CP15提供16组寄存器 通过提供的16组 ...
- matlab练习程序(Sepia Tone滤镜)
我手机上有一个软件实现了很多图像滤镜,挺有意思,我打算都尝试一下. 这个滤镜主要是实现老照片效果. 代码很短,我就不详细介绍了. 原图: 处理后效果: matlab代码如下: clear all;cl ...
- HDU 5875 Function st + 二分
Function Problem Description The shorter, the simpler. With this problem, you should be convinced ...
- zTree学习文档和DEOM
http://tool.oschina.net/apidocs/apidoc?api=ztree3.2%2Fapi%2FAPI_cn.html zTree的API http://www.ztree.m ...
- linux常用命令和选项
(1)比较两个文件. diff filename1 filename2 -y -W number; -y 并列格式输出 -W 并列格式输出时指定的列宽 (2)linux下抓包 tcpdump有三类关键 ...
- Android studio导入eclipse项目且不改变目录结构
Android studio的安装与配置论坛当中已经有很多在此就不在细说了,现在开始说下如何在Android studio当中导入eclipse的项目且不改变其目录结构和配置,让使用eclipse的同 ...
- FastDFS实现文件上传下载实战
正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...
- zookeeper源码分析三LEADER与FOLLOWER同步数据流程
根据二)中的分析,如果一台zookeeper服务器成为集群中的leader,那么一定是当前所有服务器中保存数据最多的服务器,所以在这台服务器成为leader之后,首先要做的事情就是与集群中的其它服务器 ...
- mongodb学习03 操作详解
插入文档 db.test.insert({"name":"jinks"}); 批量插入 db.test.insert([{}, {}, {}]); 一次批量插入 ...
- no-jquery 01Elements
Select Elements id // IE 5.5+ document.getElementById('myElement'); // IE 8+ document.querySelector( ...