Android学习:用户界面UI之菜单(Menu)
2013-05-25 22:30
363 查看
Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础之上。View的子类被称为“Widget”,ViewGroup的子类被称为“Layout”。任何视图组件的创建方式都有两种,一种通过在布局文件中声明创建,一种通过在代码中创建。
菜单
Android中的菜单分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)。在代码中通过MenuInflater类使用。
菜单资源文件也是一个XML文件,该菜单文件位于工程的res\menu\目录下。通过R.menu.menu's name方式引用。典型的菜单资源文件的结构是这样的:<menu>根元素,在<menu>根元素里面会套嵌<item>和<group>子元素,<item>元素中也可以套嵌<menu>形成子元素。
选项菜单(Option Menu)
当用户单击设备上的菜单按钮时,弹出的就是选项菜单。选项菜单最多只有6个,超过6个自动显示“更多”选项来显示。
创建一个选项菜单需要如下步骤:
1、覆盖Activity的onCreateOptionsMenu(Menu menu)方法,当我们第一次打开菜单时该方法被自动调用。
2、调用Menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单项设置图标。
3、当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected()方法来响应事件。
上下文菜单(Context Menu)
当用户上时间按键不放,弹出的菜单称为上下文菜单。如在windows中用鼠标右键点击弹出的菜单也就是上下文菜单。
在程序中创建一个上下文菜单需要如下步骤:
1、覆盖Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项(MenuItem)。
2、覆盖onContextItemSelected(),响应菜单单击事件。
3、调用registerForContextMenu()方法,为视图注册上下文菜单。
子菜单(Sub Menu)
子菜单就是将相同功能的分组进行多级显示的一种菜单。如windows的“文件”菜单中又有“新建”、“打开”、“关闭”等子菜单。
在程序中创建子菜单需要如下步骤:
1、覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加子菜单项(Sub Menu)。
2、调用SubMenu的add()方法,添加子菜单(Sub Menu)。
3、覆盖onOptionsItemSelected()方法,响应菜单单击事件。
菜单
Android中的菜单分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)。在代码中通过MenuInflater类使用。
菜单资源文件也是一个XML文件,该菜单文件位于工程的res\menu\目录下。通过R.menu.menu's name方式引用。典型的菜单资源文件的结构是这样的:<menu>根元素,在<menu>根元素里面会套嵌<item>和<group>子元素,<item>元素中也可以套嵌<menu>形成子元素。
选项菜单(Option Menu)
当用户单击设备上的菜单按钮时,弹出的就是选项菜单。选项菜单最多只有6个,超过6个自动显示“更多”选项来显示。
创建一个选项菜单需要如下步骤:
1、覆盖Activity的onCreateOptionsMenu(Menu menu)方法,当我们第一次打开菜单时该方法被自动调用。
2、调用Menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单项设置图标。
3、当菜单项(MenuItem)被选择时,覆盖Activity的onOptionsItemSelected()方法来响应事件。
package com.jwt.chp04; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; public class OptionsMenuActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_optionsmenu); } @Override public boolean onCreateOptionsMenu(Menu menu) { // int groupID,int itemID,int order,string title menu.add(0, Menu.FIRST, 0, "Start"); menu.add(0, Menu.FIRST + 1, 0, "Pull"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST: setTitle("You select Start button"); break; case Menu.FIRST + 1: setTitle("You select Pull button"); break; } return true; } }
上下文菜单(Context Menu)
当用户上时间按键不放,弹出的菜单称为上下文菜单。如在windows中用鼠标右键点击弹出的菜单也就是上下文菜单。
在程序中创建一个上下文菜单需要如下步骤:
1、覆盖Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项(MenuItem)。
2、覆盖onContextItemSelected(),响应菜单单击事件。
3、调用registerForContextMenu()方法,为视图注册上下文菜单。
package com.jwt.chp04; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; public class ContextMenuActivity extends Activity { private TextView lbl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contextmenu); lbl = (TextView) findViewById(R.id.lbl_CMA); registerForContextMenu(lbl); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.context_menu, menu); return true; } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // int groupID,int itemID,int order,string title menu.add(0, Menu.FIRST, 0, "Set Green Background"); menu.add(0, Menu.FIRST + 1, 0, "Set Red Background"); menu.add(0, Menu.FIRST + 2, 0, "Set Blue Background"); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST: lbl.setBackgroundColor(Color.GREEN); break; case Menu.FIRST + 1: lbl.setBackgroundColor(Color.RED); break; case Menu.FIRST + 2: lbl.setBackgroundColor(Color.BLUE); break; } return true; } }
子菜单(Sub Menu)
子菜单就是将相同功能的分组进行多级显示的一种菜单。如windows的“文件”菜单中又有“新建”、“打开”、“关闭”等子菜单。
在程序中创建子菜单需要如下步骤:
1、覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加子菜单项(Sub Menu)。
2、调用SubMenu的add()方法,添加子菜单(Sub Menu)。
3、覆盖onOptionsItemSelected()方法,响应菜单单击事件。
package com.jwt.chp04; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; public class SubMenuActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_submenu); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu smFile = menu.addSubMenu("File"); smFile.add(1, Menu.FIRST + 1, 0, "Java Project"); smFile.add(1, Menu.FIRST + 2, 0, "Android Project"); menu.add(0, Menu.FIRST, 0, "Help"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case Menu.FIRST: setTitle("You select Help Button"); break; case Menu.FIRST + 1: setTitle("You select Button to Create Java Project"); break; case Menu.FIRST + 2: setTitle("You select Button to Create Android Project"); break; } return true; } }
相关文章推荐
- 步步为营_Android开发课[20]_用户界面之Menu(菜单)
- Android基础学习之Menu(菜单)
- 【Android 开发】:UI控件之 Menu 菜单的的使用(一)
- Android学习之menu菜单使用与用户自定义View
- Android用户界面菜单之上下文菜单(Context Menu)
- Android UI学习 - Menu
- Android UI学习 - Menu
- android用户界面之菜单(Menu)教程实例汇总
- Android学习:用户界面UI之AlertDialog
- [原]Android用户界面菜单之上下文菜单(Context Menu)
- 26.Android之Menu菜单活动简单学习
- Android UI学习 - Menu
- Android学习之:Menu菜单实践
- 【Android 开发】:UI控件之 Menu 菜单的的使用(二)
- android用户界面之菜单(Menu)教程实例汇总
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android开发之Menu(菜单功能)学习小结
- Android UI学习 - Menu
- Android学习教程之圆形Menu菜单制作方法(1)