Android用onCreateOptionsMenu()创建optinosMenu
Android一共有三种形式的菜单:
1.选项菜单(optinosMenu)
2.上下文菜单(ContextMenu)
3.子菜单(subMenu)
初始化菜单,返回true则显示该menu,false 则不显示。
MainActivity.java:
1.选项菜单(optinosMenu)
2.上下文菜单(ContextMenu)
3.子菜单(subMenu)
其中最常用的就是选项菜单(optionsMenu), 该菜单在点击 menu 按键 后会在对应的Activity底部显示出来。
主要方法:
1.public boolean onCreateOptionsMenu(Menu menu)初始化菜单,返回true则显示该menu,false 则不显示。
(只会在第一次初始化菜单时调用)
2.public boolean onPrepareOptionsMenu(Menu menu)
菜单被显示前调用,返回true则显示该menu,false 则不显示。
(可以通过此方法动态的改变菜单的状态,比如加载不同的菜单等)
3.public void onOptionsMenuClosed(Menu menu)
每次菜单被关闭时调用。
(菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项)
4.public boolean onOptionsItemSelected(MenuItem item)
菜单项被点击时调用
添加菜单:
可以在onCreateOptionsMenu()或者onPrepareOptionsMenu()方法中来添加菜单代码添加:
menu.add((int groupId, int itemId, int order, charsequence title) .setIcon(drawable ID)
四个参数,依次是:
1、组别,如果不分组的话就写Menu.NONE,
2、Id,用于确定不同的菜单
3、顺序,哪个菜单项在前面由这个参数的大小决定
4、文本,菜单项的显示文本
add()方法返回的是MenuItem对象,调用其setIcon()方法,为相应MenuItem设置Icon
public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(Menu.NONE, Menu.First+1, 0, "设置").setIcon(R.drawable.setting); return true; }
布局文件添加:
res/menu/main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/add_item" android:title="Add" /> <item android:id="@+id/remove_item" android:title="Remove" /> <item android:id="@+id/finish_item" android:title="Finish" /> </menu>
MainActivity.java:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 用于初始化菜单,menu参数就是将显示的Menu实例 // 只会在第一次初始化菜单时调用 @Override public boolean onCreateOptionsMenu(Menu menu) { // getMenuInfalter() 方法获取 MenuInflater对象 // 再调用inflate()方法创建菜单 getMenuInflater().inflate(R.menu.main, menu); // return true则显示菜单,false则不显示 return true; } // 定义菜单响应事件,菜单项被点击时调用 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // 判断点击的菜单项 case R.id.add_item: Toast.makeText(this, "点击了Add菜单", Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(this, "点击了Remove菜单", Toast.LENGTH_SHORT).show(); break; case R.id.finish_item: finish(); default: } return true; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。