Options Menu详解
来源:互联网 发布:mac相册里照片如何删除 编辑:程序博客网 时间:2024/06/16 22:51
使用XML文件定义菜单资源的好处:
有利于观察菜单结构
菜单资源和逻辑代码分离,有利于维护
菜单资源可以被不同的平台,版本等所用
package com.studio.optionsmenudemo;import android.app.Activity;import android.graphics.Color;import android.support.v4.widget.TextViewCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.TextView;import android.widget.Toast;/** * 演示OptionsMenu的使用 */public class MainActivity extends Activity { private TextView tvShow; private float fontSize=15.0f; private static final int ITEMID = 4;//菜单项ID @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvShow = (TextView) findViewById(R.id.tv_show); tvShow.setTextSize(fontSize);//设置textview中初始的字体大小 } /** * 表示当activity创建选项菜单时回调的方法 * @param menu * @return * true 用来显示菜单项 * false 无法显示菜单项 */ @Override public boolean onCreateOptionsMenu(Menu menu) { //创建菜单的第一种方式 加载XML文件 //获取菜单填充器对象 getMenuInflater().inflate(R .menu.main,menu); //创建菜单的第二种方式 使用add方法 //add(groupId 菜单项分组,ItemId 菜单项唯一标识id,order 表示菜单项的排序,菜单项展示的文本) menu.add(Menu.NONE,ITEMID,Menu.NONE,"设置字体"); //处理菜单项点击事件的第三种方式 final MenuItem item = menu.findItem(R.id.action_style); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { Toast.makeText(MainActivity.this,item.getTitle().toString(),Toast.LENGTH_SHORT).show(); return false; } }); return true; } /** * 表示当选项菜单中的item被选中时回调的方法 * @param item 表示菜单项对象 * @return */ @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId=item.getItemId();//获取当前点击菜单项的资源id switch (itemId){ case R.id.action_add: fontSize+=5; tvShow.setTextSize(fontSize);//点击设置字体大小 break; case R.id.action_sub: fontSize-=5; tvShow.setTextSize(fontSize); break; case R.id.action_color://点击设置字体颜色 //随机生成颜色 int red= (int) (Math.random()*256); int green= (int) (Math.random()*256); int blue = (int) (Math.random()*256); tvShow.setTextColor(Color.rgb(red,green,blue)); break; } return super.onOptionsItemSelected(item); } /** * 表示菜单项中被点击回调的方法 * @param featureId * @param item * @return */ @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId=item.getItemId(); if(itemId==ITEMID){ tvShow.setText("调用了菜单项第二种点击事件"); } return super.onMenuItemSelected(featureId, item); }}
<?xml version="1.0" encoding="utf-8"?><menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/font_group" android:orderInCategory="3" android:title="@string/font_name"> <!--设置子菜单--><menu> <item android:id="@+id/action_add" android:title="@string/add"></item> <item android:id="@+id/action_sub" android:title="@string/sub"></item></menu> </item> <item android:id="@+id/action_color" android:title="@string/str_color" android:orderInCategory="2"> </item> <item android:id="@+id/action_style" android:title="@string/str_style" android:orderInCategory="1"> </item></menu><!-- android:id="@+id/font_group" 设置当前菜单项的唯一标示 android:title="@string/font_name"设置菜单项的文本 android:orderInCategory="3"设置同种类菜单项的排列顺序-->
阅读全文
0 0
- Options Menu详解
- 菜单选项 Options Menu
- Options Menu的使用
- options menu、context menu的区别
- Customizing the Options Menu Background
- Android Menu(Context Menu,Options Menu,SubMenu)实例
- Menu详解
- 创建选项菜单(Options Menu)
- Android Context Menu和Options Menu菜单的区别
- Android中添加Options Menu,按MENU键无反应
- Android中添加Options Menu,按MENU键无反应
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- BitmapFactory.Options详解
- linux开机自启动与shell命令调用
- hadoop2.x入门:Hadoop的启动方式
- 动态链接库
- 1054. The Dominant Color 解析
- Java_基础—FileInputStream
- Options Menu详解
- 无参数的构造函数如何声明对象?
- IntelliJ idea学习笔记(一)-基本配置和配置tomcat
- v撒
- Servlet随机生成验证图片
- 1004 Max Sum
- Python-单下划线与双下划线的区别
- java并发编程实战-显式锁
- Retrofit源码解析(二)