Android 菜单——上下文菜单、选择菜单以及子菜单
2015-08-02 09:17
676 查看
本文主要介绍标签控件上下文菜单、选择菜单以及子菜单的实现,具体操作看代码。
一、上下文菜单ContextMenu
1.ContextMenuActivity.java
2.布局文件context_menu.xml
3.注意:需要在AndroidManifest.xml注册相应Activity.
二、选择菜单OptionsMenu
1.OptionsMenuActivity.java
2.注意:需要在AndroidManifest.xml注册相应Activity.
三、子菜单SubMenu
1. SubMenuActivity.java
2.布局文件sub_menu.xml
3.注意:需要在AndroidManifest.xml注册相应Activity.
一、上下文菜单ContextMenu
1.ContextMenuActivity.java
public class ContextMenuActivity extends Activity { private final static int ITEM0=Menu.FIRST; private final static int ITEM1=Menu.FIRST+1; private final static int ITEM2=Menu.FIRST+2; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.context_menu); setTitle("单击Menu键看到效果!"); tv=(TextView)findViewById(R.id.tv1); this.registerForContextMenu(tv);//将上下文注册到TextView } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0, ITEM0, 0, "红色背景"); menu.add(0,ITEM1,0,"绿色背景"); menu.add(0,ITEM2,0,"白色背景"); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM0: tv.setTextColor(Color.RED); break; case ITEM1: tv.setTextColor(Color.GREEN); break; case ITEM2: tv.setTextColor(Color.WHITE); break; default: break; } return true; } }
2.布局文件context_menu.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="长按这里触发" android:textSize="50dip" /> </LinearLayout>
3.注意:需要在AndroidManifest.xml注册相应Activity.
二、选择菜单OptionsMenu
1.OptionsMenuActivity.java
//OptionsMenu测试 public class OptionsMenuActivity extends Activity { private final static int ITEM0=Menu.FIRST; private final static int ITEM1=Menu.FIRST+1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setTitle("单击Menu键看到效果!"); } @Override public boolean onCreateOptionsMenu(Menu menu) { //第一个参数:组ID 第二个参数:菜单项ID 第三个参数:顺序号 第四个参数:菜单项上显示的内容 menu.add(0,ITEM0,0,"开始"); menu.add(0,ITEM1,0,"结束"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM0: setTitle("开始游戏"); break; case ITEM1: setTitle("结束游戏"); break; default: break; } return true; } }
2.注意:需要在AndroidManifest.xml注册相应Activity.
三、子菜单SubMenu
1. SubMenuActivity.java
//子菜单subMenu public class SubMenuActivity extends Activity { private final static int ITEM_NEW_FILE=Menu.FIRST; private final static int ITEM_OPEN_FILE=Menu.FIRST+1; private final static int ITEM_COPY=Menu.FIRST+2; private final static int ITEM_CLOSE=Menu.FIRST+3; private final static int ITEM_S***E=Menu.FIRST+4; private final static int ITEM_S***E_ALL=Menu.FIRST+5; private final static int ITEM_CUT=Menu.FIRST+6; private final static int ITEM_PASTE=Menu.FIRST+7; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.sub_menu); setTitle("单击Menu键看到效果!"); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu file=menu.addSubMenu("文件"); SubMenu edit=menu.addSubMenu("编辑"); file.add(0,ITEM_NEW_FILE,0,"新建"); file.add(0,ITEM_OPEN_FILE,0,"打开"); file.add(0,ITEM_CLOSE,0,"关闭"); file.add(0,ITEM_S***E,0,"保存"); file.add(0,ITEM_S***E_ALL,0,"保存全部"); edit.add(0,ITEM_COPY,0,"复制"); edit.add(0,ITEM_CUT,0,"剪切"); edit.add(0,ITEM_PASTE,0,"粘贴"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM_NEW_FILE: setTitle("新建文件!"); break; case ITEM_OPEN_FILE: setTitle("打开文件"); break; case ITEM_COPY: setTitle("复制文件"); break; default: break; } return true; } }
2.布局文件sub_menu.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="子菜单操作" /> </LinearLayout>
3.注意:需要在AndroidManifest.xml注册相应Activity.
相关文章推荐
- [深入理解Android卷一全文-第一章]阅读前的准备工作
- Android 属性动画总小结
- 关于Android5.x适配的一点小问题(NDK error: SIGABRT)
- Android AsyncTask usage
- android自定义渐变圆环进度条
- Android差量更新
- Android_开源框架_Afinal
- Android第二夜
- Ubuntu Android Studio NDK开发
- Android Studio not find in root project android()
- Android远程服务三:android AIDL远程服务个人归纳总结
- Android自定义View
- Android SDK 无法更新的解决方法
- Android深入浅出之Binder机制
- Ubuntu 12.04下面设别无法识别android设备的解决方法
- Android NDK之如何避开Java_xxx标准定义
- android 项目 为什么 packaging 没有 apk 选项
- ubuntu14.04LTS安装android-studio教程
- Android自定义xml解析
- phonegap- phonegap2.9.0 演示例子