选项菜单和子菜单

  最开始还以为android的菜单很丑,所以一直不怎么想学这个,现在发现菜单还是挺漂亮的。

  1.首先定义好创建菜单需要的标识

  2.创建菜单项和子菜单

  3.写菜单被点击后调用的函数

  1 package com.ll.menutest;
  2 
  3 import android.support.v7.app.ActionBarActivity;
  4 import android.app.Activity;
  5 import android.graphics.Color;
  6 import android.os.Bundle;
  7 import android.view.Menu;
  8 import android.view.MenuItem;
  9 import android.view.SubMenu;
 10 import android.widget.EditText;
 11 import android.widget.Toast;
 12 
 13 
 14 public class MainActivity extends Activity {
 15     
 16     // 定义字体大小
 17     final int FONT_10 = 0x111;
 18     final int FONT_12 = 0x112;
 19     final int FONT_14 = 0x113;
 20     final int FONT_16 = 0x114;
 21     final int FONT_18 = 0x115;
 22     // 定义“普通菜单”标识
 23     final int PLAIN_ITEM = 0x11b;
 24     // 定义“字体颜色”菜单项标识
 25     final int FONT_RED = 0x116;
 26     final int FONT_BLUE = 0x117;
 27     final int FONT_GREEN = 0x118;
 28     private EditText edit;
 29 
 30     @Override
 31     protected void onCreate(Bundle savedInstanceState) {
 32         super.onCreate(savedInstanceState);
 33         setContentView(R.layout.activity_main);
 34         edit = (EditText)findViewById(R.id.txt);
 35     }
 36 
 37 
 38     // 当用户单击Menu时,触发该方法
 39     @Override
 40     public boolean onCreateOptionsMenu(Menu menu) {
 41         // Inflate the menu; this adds items to the action bar if it is present.
 42         SubMenu fontMenu = menu.addSubMenu("字体大小");
 43         fontMenu.setHeaderIcon(R.drawable.ic_drawer_collect_normal);
 44         // 设置菜单头的标题
 45         fontMenu.setHeaderTitle("选择字体大小");
 46         fontMenu.add(0, FONT_10, 0, "10号字体");
 47         fontMenu.add(0, FONT_12, 0, "12号字体");
 48         fontMenu.add(0, FONT_14, 0, "14号字体");
 49         fontMenu.add(0, FONT_16, 0, "16号字体");
 50         fontMenu.add(0, FONT_18, 0, "18号字体");
 51         // -----------------向menu中添加“普通菜单项”----------
 52         menu.add(0, PLAIN_ITEM, 0, "普通菜单项");
 53         // -----------------向menu中添加“字体颜色”的子菜单-----
 54         SubMenu colorMenu = menu.addSubMenu("字体颜色");
 55         colorMenu.setIcon(R.drawable.ic_drawer_explore_normal);
 56         // 设置菜单头的图标
 57         colorMenu.setHeaderIcon(R.drawable.ic_drawer_collect_normal);
 58         // 设置菜单头的标题
 59         colorMenu.setHeaderTitle("选择文字颜色");
 60         colorMenu.add(0, FONT_RED, 0, "红色");
 61         colorMenu.add(0, FONT_GREEN, 0, "绿色");
 62         colorMenu.add(0, FONT_BLUE, 0, "蓝色");
 63         
 64         return true;
 65     }
 66 
 67     // 选项菜单的菜单项被单击后的回调方法
 68     @Override
 69     public boolean onOptionsItemSelected(MenuItem item) {
 70         // Handle action bar item clicks here. The action bar will
 71         // automatically handle clicks on the Home/Up button, so long
 72         // as you specify a parent activity in AndroidManifest.xml.
 73         // 判断单击的是哪个菜单项,并有针对性地做出响应
 74         switch(item.getItemId())
 75         {
 76             case FONT_10:
 77                 edit.setTextSize(10 * 2);
 78                 break;
 79             case FONT_12:
 80                 edit.setTextSize(12 * 2);
 81                 break;
 82             case FONT_14:
 83                 edit.setTextSize(14 * 2);
 84                 break;
 85             case FONT_16:
 86                 edit.setTextSize(16 * 2);
 87                 break;
 88             case FONT_18:
 89                 edit.setTextSize(18 * 2);
 90                 break;
 91             case FONT_RED:
 92                 edit.setTextColor(Color.RED);
 93                 break;
 94             case FONT_GREEN:
 95                 edit.setTextColor(Color.GREEN);
 96                 break;
 97             case FONT_BLUE:
 98                 edit.setTextColor(Color.BLUE);
 99                 break;
100             case PLAIN_ITEM:
101                 Toast.makeText(getApplicationContext(), "您单击了普通菜单项", Toast.LENGTH_SHORT).show();
102                 break;
103         }
104         return super.onOptionsItemSelected(item);
105     }
106 }

 

效果如下:

 

posted on 2015-11-06 23:04  I*M  阅读(316)  评论(0)    收藏  举报

导航