选项菜单和子菜单
最开始还以为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 }
效果如下:


浙公网安备 33010602011771号