OptionsMenu创建使用

来源:互联网 发布:python split去掉空格 编辑:程序博客网 时间:2024/05/16 01:10

首先在当前Module下的src/main/res下右键,New一个Android resource field
这里写图片描述
Resource type选择Menu,起好名称后就可以。
接着右键menu选择New->menu resource file
之后就可以往xml文件中添加菜单选项item


strings.xml

XML<resources>    <string name="app_name">OptionsMenuDemo</string>    <string name="font_name">设置字体大小</string>    <string name="str_color">设置字体颜色</string>    <string name="str_style">设置字体样式</string>    <string name="content">操作字体</string></resources>

main.xml

XML<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item android:id="@+id/font_group"        android:title="@string/font_name"        android:orderInCategory="3"        >    </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 设置当前菜单项的唯一标示   android:title 设置菜单项的文本   android:orderInCategory 设置同种类菜单项的排列顺序-->

接着我们在MainActivity.java中重写两个方法。
public boolean onCreateOptionsMenu(Menu menu)
该方法表示当avtivity创建选项菜单时回调的方法
public boolean onOptionsItemSelected(MenuItem item)
该方法表示当选项菜单中的item被选中时回调的方法


Javapackage com.studio.optionsmenudemo;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;/** * 演示OptionsMenu的使用 */public class MainActivity extends AppCompatActivity {    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) {        //获取菜单填充器对像        getMenuInflater().inflate(R .menu.main,menu);        //add(groupId 菜单项分组,ItemId 菜单项唯一标识id,order 菜单项的排序,菜单项展示的文本)        menu.add(Menu.NONE,ITEMID,Menu.NONE,"设置字体");        return true;    }    /**     * 表示当选项菜单中的item被选中时回调的方法     * @param item 表示菜单项对象     * @return     */    @Override    public boolean onOptionsItemSelected(MenuItem item) {        int itemId=item.getItemId();//获取当前点击菜单项的资源id        switch (itemId){            case R.id.font_group:                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);    }}

这里写图片描述
这里写图片描述
这里写图片描述

原创粉丝点击