Android 创建菜单(menu)的总结
2011-10-17 15:03
453 查看
从网上找了些例子看了一下,menu分为默认和自定义两种(下面的代码有些是借用别的,自己整理了一下)
1)默认menu:(效果图)
MainActiviry.java
Main.xml文件
在XML里定义菜单Define Menus in XML
在res下建立新的目录,然后在此目录下创建option_menu.xml文件
然后在onCreateOptionsMenu方法里调用
1)默认menu:(效果图)
MainActiviry.java
package com.zhugh.test; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { /* * * add()方法的四个参数,依次是: * * 1、组别,如果不分组的话就写Menu.NONE, * * 2、Id,这个很重要,Android根据这个Id来确定不同的菜单 * * 3、顺序,那个菜单现在在前面由这个参数的大小决定 * * 4、文本,菜单的显示文本 */ menu.add(Menu.NONE, Menu.FIRST + 1, 5, "删除").setIcon( android.R.drawable.ic_menu_delete); // setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以 // android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的 menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon( android.R.drawable.ic_menu_edit); menu.add(Menu.NONE, Menu.FIRST + 3, 6, "帮助").setIcon( android.R.drawable.ic_menu_help); menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon( android.R.drawable.ic_menu_add); menu.add(Menu.NONE, Menu.FIRST + 5, 4, "详细").setIcon( android.R.drawable.ic_menu_info_details); menu.add(Menu.NONE, Menu.FIRST + 6, 3, "发送").setIcon( android.R.drawable.ic_menu_send); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST + 1: Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 2: Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 3: Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 4: Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 5: Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show(); break; case Menu.FIRST + 6: Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show(); break; } return false; } @Override public void onOptionsMenuClosed(Menu menu) { Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show(); } @Override public boolean onPrepareOptionsMenu(Menu menu) { Toast.makeText(this, "选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单", Toast.LENGTH_LONG).show(); // 如果返回false,此方法就把用户点击menu的动作给消费了,onCreateOptionsMenu方法将不会被调用 return true; } }
Main.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="wrap_content" android:layout_height="wrap_content" android:text="点击 Menu键显示选项菜单" /> </LinearLayout>
在XML里定义菜单Define Menus in XML
在res下建立新的目录,然后在此目录下创建option_menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/about_gamedog" android:title="关于" android:icon="@drawable/gameclass_ol_yemian"/> <item android:id="@+id/quit" android:title="退出" /> </menu>
然后在onCreateOptionsMenu方法里调用
//弹出菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); return true; }
相关文章推荐
- 【转】Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android创建菜单Menu
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- Android 中右上角菜单创建(Menu)
- Android中关于menu(菜单)的创建与使用
- Android的onCreateOptionsMenu()创建菜单Menu详解