Android应用开发基础篇(10)-----Menu(菜单)
2016-02-03 09:55
701 查看
链接地址:/article/5068113.html
一、概述
Menu,简单来理解就是当你按下手机的“menu”键时所弹出来的窗口,它被广泛应用着,几乎在每个应用中都有它的身影。
二、要求
用两种方式实现菜单功能。
三、实现
新建工程MyMenu,修改/res/layout/main.xml文件,主要是修改了里面的TextView,完整的main.xml文件如下:
接着,修改MyMenuActivity.java文件,主要是覆写了onCreateOptionsMenu()和onOptionsItemSelected()这两个方法,在onCreateOptionsMenu()方法里增加7个选项,比较简单,完整的内容如下:
注释那段内容后面再解释,先运行这个程序看看:
点击"menu"按键,可以看到弹出了一个菜单窗口,如下:
接着,随便点击一项,效果如下:
好了。这是实现的一种方法,第二种实现方法就是把上面程序中的第55~76行的注释取消掉,然后将第19~54行加上注释,重新运行程序,OK。
附:
可以看到用第一种方法创建菜单最多只可以显示5项,第6项变成“more”,其他选项就在"more"里面,而第二种方法则可以用我们自己定义的布局来作为菜单选项,那么就变得灵活多了。
一、概述
Menu,简单来理解就是当你按下手机的“menu”键时所弹出来的窗口,它被广泛应用着,几乎在每个应用中都有它的身影。
二、要求
用两种方式实现菜单功能。
三、实现
新建工程MyMenu,修改/res/layout/main.xml文件,主要是修改了里面的TextView,完整的main.xml文件如下:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <TextView 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:text="这是一个菜单测试程序" 11 android:gravity="center_horizontal" 12 /> 13 14 </LinearLayout>
接着,修改MyMenuActivity.java文件,主要是覆写了onCreateOptionsMenu()和onOptionsItemSelected()这两个方法,在onCreateOptionsMenu()方法里增加7个选项,比较简单,完整的内容如下:
1 package com.nan.menu; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.Menu; 6 import android.view.MenuItem; 7 import android.widget.Toast; 8 9 public class MyMenuActivity extends Activity 10 { 11 /** Called when the activity is first created. */ 12 @Override 13 public void onCreate(Bundle savedInstanceState) 14 { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.main); 17 18 } 19 20 @Override 21 //当"menu"按钮被按下时执行这个函数 22 public boolean onCreateOptionsMenu(Menu menu) 23 { 24 menu.add(0, 0, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 25 menu.add(0, 1, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 26 menu.add(0, 2, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 27 menu.add(0, 3, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 28 menu.add(0, 4, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 29 menu.add(0, 5, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 30 menu.add(0, 6, Menu.NONE, "菜单").setIcon(android.R.drawable.btn_star); 31 32 return super.onCreateOptionsMenu(menu); 33 } 34 35 36 //当菜单中某项被选中时执行这个函数 37 @Override 38 public boolean onOptionsItemSelected(MenuItem item) 39 { 40 switch(item.getItemId()) 41 { 42 case 0:displayToast("第0项被选中");break; 43 case 1:displayToast("第1项被选中");break; 44 case 2:displayToast("第2项被选中");break; 45 case 3:displayToast("第3项被选中");break; 46 case 4:displayToast("第4项被选中");break; 47 case 5:displayToast("第5项被选中");break; 48 case 6:displayToast("第6项被选中");break; 49 50 } 51 52 return super.onOptionsItemSelected(item); 53 } 54 55 /* 56 @Override 57 public boolean onCreateOptionsMenu(Menu menu) 58 { 59 MenuInflater inflater = getMenuInflater(); 60 inflater.inflate(R.menu.menu, menu); 61 return super.onCreateOptionsMenu(menu); 62 } 63 64 @Override 65 public boolean onOptionsItemSelected(MenuItem item) 66 { 67 int item_id = item.getItemId(); 68 69 switch(item_id) 70 { 71 case R.id.mlist: 72 {} 73 } 74 return super.onOptionsItemSelected(item); 75 } 76 */ 77 78 79 80 //显示Toast函数 81 private void displayToast(String s) 82 { 83 Toast.makeText(this, s, Toast.LENGTH_LONG).show(); 84 } 85 86 }
注释那段内容后面再解释,先运行这个程序看看:
点击"menu"按键,可以看到弹出了一个菜单窗口,如下:
接着,随便点击一项,效果如下:
好了。这是实现的一种方法,第二种实现方法就是把上面程序中的第55~76行的注释取消掉,然后将第19~54行加上注释,重新运行程序,OK。
附:
可以看到用第一种方法创建菜单最多只可以显示5项,第6项变成“more”,其他选项就在"more"里面,而第二种方法则可以用我们自己定义的布局来作为菜单选项,那么就变得灵活多了。
相关文章推荐
- Android应用开发基础篇(9)-----SharedPreferences
- #Android# android studio导入pulltorefresh
- Android 更改弹出对话框的大小
- Android应用开发提高篇(2)-----文本朗读TTS(TextToSpeech)
- Android应用开发基础篇(8)-----SurfaceView
- Android应用开发基础篇(7)-----BroadcastReceiver
- Android Sqlite数据库操作
- Android应用开发基础篇(6)-----Service
- Android应用开发基础篇(5)-----Handler与多线程
- Android应用开发基础篇(4)-----TabHost(选项卡)
- InputStream与String/byte[]相互转换
- android开发学习1-使用Android Studio搭建Android集成开发环境
- Android开发之百度翻译
- Android——4.2.2 文件系统文件夹分析
- android图片选取与调用系统裁剪
- Android 界面设计尺寸规范
- Android字符串和十六进制相互转化出现的中文乱码问题
- Android技巧2:登录注册模块解决方案
- JNI——Android 与 c 的交互(1)
- android: 实现强制下线功能