兄弟连云Android 学习笔记—菜单
2015-01-12 13:21
375 查看
菜单:
1.Options menu and action bar 选项菜单
2.Context menu 上下文菜单
3.Popup menu 弹出式菜单
1.Options menu and action bar 选项菜单
创建选项菜单步骤:
1.覆盖Activity 的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2.调用Menu的add()方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon()方法来为菜单项设置图标
3.当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected(MenuItem item)来响应事件action bar
***资源文件名必须全用小写,可以用下划线隔开,不能数字开头
MainActivity.java
2..Context menu 上下文菜单
1.覆盖Activity 的onCreateContextMenu(Menu menu)方法,调用Menu的add()方法添加菜单项(MenuItem)
2.覆盖Activity的onCreatetextItem Selected(Menu menu)来响应事件
3.调用registerForContextMenu()方法为视图注册上下文菜单
mainActivity2.java
弹出式菜单是在API 11级或更高级才有效
mainActivity3.java
1.Options menu and action bar 选项菜单
2.Context menu 上下文菜单
3.Popup menu 弹出式菜单
1.Options menu and action bar 选项菜单
创建选项菜单步骤:
1.覆盖Activity 的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2.调用Menu的add()方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon()方法来为菜单项设置图标
3.当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected(MenuItem item)来响应事件action bar
***资源文件名必须全用小写,可以用下划线隔开,不能数字开头
MainActivity.java
package com.example.hello; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.widget.Toast; public class MainActivity extends Activity { private static final int START_ITEM = Menu.FIRST; private static final int OVER_ITEM = Menu.FIRST + 1; private static final int SET_ITEM1 = Menu.FIRST + 2; private static final int SET_ITEM2 = Menu.FIRST + 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //重写onCreateOptionsMenu方法 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. // getMenuInflater().inflate(R.menu.main, menu); // 添加菜单项(组id,菜单id,排序,标题) menu.add(0, START_ITEM, 100, "开始"); menu.add(0, OVER_ITEM, 200, "结束"); // 添加子菜单 SubMenu sub1 = menu.addSubMenu("设置"); sub1.add(1, SET_ITEM1, 300, "设置声音"); sub1.add(1, SET_ITEM2, 300, "设置桌面"); System.out.println("onCreateOptionsMenu..."); return true; } // 重写onOptionItemSelected方法实现菜单选项事件 @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub System.out.println("onOptionsItemSelected..."); switch (item.getItemId()) { case START_ITEM: // R.id.start: // 弹框,提示信息 Toast.makeText(this, "开始游戏", Toast.LENGTH_SHORT).show(); break; case OVER_ITEM: // R.id.over: Toast.makeText(this, "结束游戏", Toast.LENGTH_SHORT).show(); break; case SET_ITEM1: // R.id.over: Toast.makeText(this, "设置声音", Toast.LENGTH_SHORT).show(); break; case SET_ITEM2: // R.id.over: Toast.makeText(this, "设置桌面", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onOptionsItemSelected(item); } }
2..Context menu 上下文菜单
1.覆盖Activity 的onCreateContextMenu(Menu menu)方法,调用Menu的add()方法添加菜单项(MenuItem)
2.覆盖Activity的onCreatetextItem Selected(Menu menu)来响应事件
3.调用registerForContextMenu()方法为视图注册上下文菜单
mainActivity2.java
package com.example.hello; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.Button; import android.widget.Toast; //上下文菜单 public class MainActivity2 extends Activity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main2); // 获取BUTTON对象 btn1 = (Button) findViewById(R.id.button1); //在button上注册上下文菜单 registerForContextMenu(btn1); } // 创建上下文菜单的方法 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.main2, menu); } // 上下文触发事件 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.start: Toast.makeText(this, "开始",Toast.LENGTH_SHORT).show(); break; case R.id.over: Toast.makeText(this, "结束",Toast.LENGTH_SHORT).show(); break; default: break; } return super.onContextItemSelected(item); } }3.Popup menu 弹出式菜单
弹出式菜单是在API 11级或更高级才有效
mainActivity3.java
package com.example.hello; import android.app.Activity; import android.os.Bundle; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.PopupMenu; import android.widget.Toast; public class mainActivity3 extends Activity implements android.widget.PopupMenu.OnMenuItemClickListener { private Button btn1; //弹出式菜单 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main3); } public void showPopupMenu(View v){ //创建弹出式菜单对象 PopupMenu popup = new PopupMenu(this,v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.main3,popup.getMenu()); //设置菜单项的单击事件 popup.setOnMenuItemClickListener(this); popup.show(); } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.copy: Toast.makeText(this, "复制", Toast.LENGTH_LONG).show(); break; case R.id.del: Toast.makeText(this, "删除", Toast.LENGTH_LONG).show(); break; default: break; } return false; } }
相关文章推荐
- Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭【学习鸿洋_视频博客笔记总结】
- [android](学习笔记7)为应用程序添加选项菜单
- Android应用开发学习笔记之菜单
- Android开发学习笔记:浅谈3大类菜单
- Android个人学习笔记之ListView知识应用-仿IOS百度云条目点击显示菜单模块实现
- Android 菜单学习笔记
- Android开发学习笔记:浅谈3大类菜单
- Android开发学习笔记:浅谈3大类菜单
- Android应用开发学习笔记之菜单
- Android之选项菜单子菜单学习笔记
- 每天一点点:android的选项菜单和其子菜单学习笔记
- Android仿优酷圆形菜单学习笔记分享
- Android 学习笔记之AndBase框架学习(七) SlidingMenu滑动菜单的实现
- android菜单学习笔记
- Android(OPhone) 学习笔记 - 菜单使用
- [学习笔记]用户界面优化之Android侧滑菜单(DrawerLayout使用)
- Android(OPhone) 学习笔记 - 资源的访问和配置
- Android(OPhone) 学习笔记 - HelloWorld工程简介
- Android(OPhone) 学习笔记 - OPhone 开发环境
- Android(OPhone) 学习笔记 - 搜索API的使用