为Android应用添加菜单和子菜单

来源:互联网 发布:网络心理学的杂志 编辑:程序博客网 时间:2024/05/24 05:56

第一步:在MainActivity的代码如下:

package com.example.yangjian.leagngjian;import android.graphics.Color;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity {    // 定义字体大小菜单项的标识    final int FONT_10 = 0x111;    final int FONT_12 = 0x112;    final int FONT_14 = 0x113;    final int FONT_16 = 0x114;    final int FONT_18 = 0x115;    // 定义字体颜色菜单项的标识    final int PLAIN_ITEM = 0x11b;    // 定义字体颜色菜单项的标识    final int FONT_RED = 0X116;    final int FONT_BLUE = 0X117;    final int FONT_GREEN = 0X118;    private EditText edit;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        edit = (EditText) findViewById(R.id.txt);    }    // 当用户单击MENU键时触发该方法    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        //getMenuInflater().inflate(R.menu.menu_main, menu);        //return true;        //----------menu中添加字体大小的子菜单----------------        SubMenu fontMenu = menu.addSubMenu("字体大小");        // 设置菜单的图标        fontMenu.setIcon(R.drawable.font);        // 设置菜单头的图标        fontMenu.setHeaderIcon(R.drawable.font);        // 设置菜单头的标题        fontMenu.setHeaderTitle("选择字体大小");        fontMenu.add(0, FONT_10, 0, "10号字体");        fontMenu.add(0, FONT_12, 0, "12号字体");        fontMenu.add(0, FONT_14, 0, "14号字体");        fontMenu.add(0, FONT_16, 0, "16号字体");        fontMenu.add(0, FONT_18, 0, "18号字体");        // --------menu中添加普通菜单项------------        menu.add(0, PLAIN_ITEM, 0, "普通菜单项");        // ------menu中添加文字颜色的子菜单---------        SubMenu colorMenu = menu.addSubMenu("字体颜色");        colorMenu.setIcon(R.drawable.color);        // 设置菜单头的图标        colorMenu.setHeaderTitle("选择文字颜色");        colorMenu.add(0, FONT_RED, 0, "红色");        colorMenu.add(0, FONT_BLUE, 0, "蓝色");        colorMenu.add(0, FONT_GREEN, 0, "绿色");        return super.onCreateOptionsMenu(menu);    }    // 选项菜单的菜单项被单击后的回调方法    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.       // int id = item.getItemId();        //noinspection SimplifiableIfStatement       // if (id == R.id.action_settings) {           // return true;        //}        //return super.onOptionsItemSelected(item);        // 判断单击的是哪个菜单项,并有针对性地作出响应        switch (item.getItemId()) {            case FONT_10:                edit.setTextSize(10 * 2);                break;            case FONT_12:                edit.setTextSize(12 * 2);                break;            case FONT_14:                edit.setTextSize(14 * 2);                break;            case FONT_16:                edit.setTextSize(16 * 2);                break;            case FONT_18:                edit.setTextSize(18 * 2);                break;            case FONT_RED:                edit.setTextColor(Color.RED);                break;            case FONT_BLUE:                edit.setTextColor(Color.BLUE);                break;            case FONT_GREEN:                edit.setTextColor(Color.GREEN);                break;            case PLAIN_ITEM:                Toast toast = Toast.makeText(MainActivity.this, "您单击了普通菜单项", Toast.LENGTH_SHORT);                toast.show();                break;        }        return true;    }}
第二步:在Main_xml文件中代码如下:
<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">   <EditText       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/txt"/></LinearLayout>

0 0