常见Android选项菜单样式集合

常见Android选项菜单样式集合

2023年7月7日发(作者:)

常见Android选项菜单样式集合菜单是⽤户界⾯中最常见的元素之⼀,使⽤⾮常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下⽂菜单(ContextMenu)和⼦菜单(SubMenu),今天这讲是OptionsMenu⼀、概述  public boolean onCreateOptionsMenu(Menu menu):使⽤此⽅法调⽤OptionsMenu 。  public boolean onOptionsItemSelected(MenuItem item):选中菜单项后发⽣的动作。  public void onOptionsMenuClosed(Menu menu):菜单关闭后发⽣的动作。  public boolean onPrepareOptionsMenu(Menu menu):选项菜单显⽰之前onPrepareOptionsMenu⽅法会被调⽤,你可以⽤此⽅法来根据打当时的情况调整菜单。  public boolean onMenuOpened(int featureId, Menu menu):单打开后发⽣的动作。⼆、默认样式默认样式是在屏幕底部弹出⼀个菜单,这个菜单我们就叫他选项菜单OptionsMenu,⼀般情况下,选项菜单最多显⽰2排每排3个菜单项,这些菜单项有⽂字有图标,也被称作Icon Menus,如果多于6项,从第六项开始会被隐藏,在第六项会出现⼀个More⾥,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。下⾯介绍。

2、重载onCreateOptionsMenu(Menu menu)⽅法重载onCreateOptionsMenu(Menu menu)⽅法,并在此⽅法中添加菜单项,最后返回true,如果false,菜单则不会显⽰。@Override public boolean onCreateOptionsMenu(Menu menu) { /* *

* add()⽅法的四个参数,依次是: *

* 1、组别,如果不分组的话就写, *

* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单 *

* 3、顺序,那个菜单现在在前⾯由这个参数的⼤⼩决定 *

* 4、⽂本,菜单的显⽰⽂本 */ (, + 1, 5, "删除").setIcon( _menu_delete); // setIcon()⽅法为菜单设置图标,这⾥使⽤的是系统⾃带的图标,同学们留意⼀下,以 // android.R开头的资源是系统提供的,我们⾃⼰提供的资源是以R开头的 (, + 2, 2, "保存").setIcon( _menu_edit); (, + 3, 6, "帮助").setIcon( _menu_help); (, + 4, 1, "添加").setIcon( _menu_add); (, + 5, 4, "详细").setIcon( _menu_info_details); (, + 6, 3, "发送").setIcon( _menu_send); return true; }3、为菜单项注册事件使⽤onOptionsItemSelected(MenuItem item)⽅法为菜单项注册事件@Override public boolean onOptionsItemSelected(MenuItem item) { switch (mId()) { case + 1: xt(this, "删除菜单被点击了", _LONG).show(); break; case + 2: xt(this, "保存菜单被点击了", _LONG).show(); break; case + 3: xt(this, "帮助菜单被点击了", _LONG).show(); break; case + 4: xt(this, "添加菜单被点击了", _LONG).show(); break; case + 5: xt(this, "详细菜单被点击了", _LONG).show(); break; case + 6: xt(this, "发送菜单被点击了", _LONG).show(); break; } return false; }4、其他按需要重载完整代码package ;import ty;import ;import ;import em;import ;public class DefaultMenu extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { te(savedInstanceState); setContentView(); } @Override public boolean onCreateOptionsMenu(Menu menu) { /* *

* add()⽅法的四个参数,依次是: *

* 1、组别,如果不分组的话就写, *

* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单 *

* 3、顺序,那个菜单现在在前⾯由这个参数的⼤⼩决定 *

* 4、⽂本,菜单的显⽰⽂本 */ (, + 1, 5, "删除").setIcon( _menu_delete); // setIcon()⽅法为菜单设置图标,这⾥使⽤的是系统⾃带的图标,同学们留意⼀下,以 // android.R开头的资源是系统提供的,我们⾃⼰提供的资源是以R开头的 (, + 2, 2, "保存").setIcon( _menu_edit); (, + 3, 6, "帮助").setIcon( _menu_help); (, + 4, 1, "添加").setIcon( _menu_add); (, + 5, 4, "详细").setIcon( _menu_info_details); (, + 6, 3, "发送").setIcon( _menu_send); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (mId()) { case + 1: xt(this, "删除菜单被点击了", _LONG).show(); break; case + 2: xt(this, "保存菜单被点击了", _LONG).show(); break; case + 3: xt(this, "帮助菜单被点击了", _LONG).show(); break; case + 4: xt(this, "添加菜单被点击了", _LONG).show(); break; case + 5: xt(this, "详细菜单被点击了", _LONG).show(); break; case + 6: xt(this, "发送菜单被点击了", _LONG).show(); break; } return false; } @Override public void onOptionsMenuClosed(Menu menu) { xt(this, "选项菜单关闭了", _LONG).show(); } @Override public boolean onPrepareOptionsMenu(Menu menu) { xt(this, "选项菜单显⽰之前onPrepareOptionsMenu⽅法会被调⽤,你可以⽤此⽅法来根据打当时的情况调整菜单", _LONG).show(); // 如果返回false,此⽅法就把⽤户点击menu的动作给消费了,onCreateOptionsMenu⽅法将不会被调⽤ return true; }}5.效果浏览三、⾃定义样式

⾸先⾃定义菜单界⾯,我是GridView来包含菜单项,4列3⾏ 菜单项的现实样式,⼀个图标和⼀个⽂字。3.定义private boolean isMore = false;// menu菜单翻页控制 AlertDialog menuDialog;// menu菜单Dialog GridView menuGrid; View menuView;

private final int ITEM_SEARCH = 0;// 搜索 private final int ITEM_FILE_MANAGER = 1;// ⽂件管理 private final int ITEM_DOWN_MANAGER = 2;// 下载管理 private final int ITEM_FULLSCREEN = 3;// 全屏 private final int ITEM_MORE = 11;// 菜单

/** 菜单图⽚ **/ int[] menu_image_array = { _search, _filemanager, _downmanager, _fullscreen, _inputurl, _bookmark, _bookmark_sync_import, _sharepage, _quit, _nightmode, _refresh, _more }; /** 菜单⽂字 **/ String[] menu_name_array = { "搜索", "⽂件管理", "下载管理", "全屏", "⽹址", "书签", "加⼊书签", "分享页⾯", "退出", "夜间模式", "刷新", "更多" }; /** 菜单图⽚2 **/ int[] menu_image_array2 = { _auto_landscape, _penselectmodel, _page_attr, _novel_mode, _page_updown, _checkupdate, _checknet, _refreshtimer, _syssettings, _help, _about, _return }; /** 菜单⽂字2 **/ String[] menu_name_array2 = { "⾃动横屏", "笔选模式", "阅读模式", "浏览模式", "快捷翻页", "检查更新", "检查⽹络", "定时刷新", "设置", "帮助", "关于", "返回" };@Override public boolean onMenuOpened(int featureId, Menu menu) { if (menuDialog == null) { menuDialog = new r(this).setView(menuView).show(); } else { (); } return false;// 返回为true 则显⽰系统menu }如果第⼀次打开则设置视图,否则直接显⽰menuDialog视图。

private SimpleAdapter getMenuAdapter(String[] menuNameArray, int[] imageResourceArray) { ArrayList> data = new ArrayList>(); for (int i = 0; i < ; i++) { HashMap map = new HashMap(); ("itemImage", imageResourceArray[i]); ("itemText", menuNameArray[i]); (map); } SimpleAdapter simperAdapter = new SimpleAdapter(this, data, _menu, new String[] { "itemImage", "itemText" }, new int[] { _image, _text }); return simperAdapter; }为菜单添加菜单项。@Override public boolean onCreateOptionsMenu(Menu menu) { ("menu");// 必须创建⼀项 return teOptionsMenu(menu); }

@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub te(savedInstanceState);

setContentView();

menuView = e(this, ew_menu, null); // 创建AlertDialog menuDialog = new r(this).create(); w(menuView); eyListener(new OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == E_MENU)// 监听按键 s(); return false; } }); menuGrid = (GridView) ewById(ew); pter(getMenuAdapter(menu_name_array, menu_image_array)); /** 监听menu选项 **/ temClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { switch (arg2) { case ITEM_SEARCH:// 搜索 break; case ITEM_FILE_MANAGER:// ⽂件管理 break; case ITEM_DOWN_MANAGER:// 下载管理 break; case ITEM_FULLSCREEN:// 全屏 break; case ITEM_MORE:// 翻页 if (isMore) { pter(getMenuAdapter(menu_name_array2, menu_image_array2)); isMore = false; } else {// ⾸页 pter(getMenuAdapter(menu_name_array, menu_image_array)); isMore = true; } date();// 更新menu ection(ITEM_MORE); break; }

} }); }package ;import ist;import p;import ty;import ialog;import Interface;import istener;import ;import nt;import ;import ;import rView;import ew;import Adapter;import ClickListener;public class CustomizeMenu extends Activity {

private boolean isMore = false;// menu菜单翻页控制 AlertDialog menuDialog;// menu菜单Dialog GridView menuGrid; View menuView;

private final int ITEM_SEARCH = 0;// 搜索 private final int ITEM_FILE_MANAGER = 1;// ⽂件管理 private final int ITEM_DOWN_MANAGER = 2;// 下载管理 private final int ITEM_FULLSCREEN = 3;// 全屏 private final int ITEM_MORE = 11;// 菜单 /** 菜单图⽚ **/ int[] menu_image_array = { _search, _filemanager, _downmanager, _fullscreen, _inputurl, _bookmark, _bookmark_sync_import, _sharepage, _quit, _nightmode, _refresh, _more }; /** 菜单⽂字 **/ String[] menu_name_array = { "搜索", "⽂件管理", "下载管理", "全屏", "⽹址", "书签", "加⼊书签", "分享页⾯", "退出", "夜间模式", "刷新", "更多" }; /** 菜单图⽚2 **/ int[] menu_image_array2 = { _auto_landscape, _penselectmodel, _page_attr, _novel_mode, _page_updown, _checkupdate, _checknet, _refreshtimer, _syssettings, _help, _about, _return }; /** 菜单⽂字2 **/ String[] menu_name_array2 = { "⾃动横屏", "笔选模式", "阅读模式", "浏览模式", "快捷翻页", "检查更新", "检查⽹络", "定时刷新", "设置", "帮助", "关于", "返回" }; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub te(savedInstanceState);

setContentView();

menuView = e(this, ew_menu, null); // 创建AlertDialog menuDialog = new r(this).create(); w(menuView); eyListener(new OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == E_MENU)// 监听按键 s(); return false; } }); menuGrid = (GridView) ewById(ew); pter(getMenuAdapter(menu_name_array, menu_image_array)); /** 监听menu选项 **/ temClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { switch (arg2) { case ITEM_SEARCH:// 搜索 break; case ITEM_FILE_MANAGER:// ⽂件管理 break; case ITEM_DOWN_MANAGER:// 下载管理 break; case ITEM_FULLSCREEN:// 全屏 break; case ITEM_MORE:// 翻页 if (isMore) { pter(getMenuAdapter(menu_name_array2, menu_image_array2)); isMore = false; } else {// ⾸页 pter(getMenuAdapter(menu_name_array, menu_image_array)); isMore = true; } date();// 更新menu ection(ITEM_MORE); break; }

} }); } @Override public boolean onCreateOptionsMenu(Menu menu) { ("menu");// 必须创建⼀项 return teOptionsMenu(menu); }

private SimpleAdapter getMenuAdapter(String[] menuNameArray, int[] imageResourceArray) { ArrayList> data = new ArrayList>(); for (int i = 0; i < ; i++) { HashMap map = new HashMap(); ("itemImage", imageResourceArray[i]); ("itemText", menuNameArray[i]); (map); } SimpleAdapter simperAdapter = new SimpleAdapter(this, data, _menu, new String[] { "itemImage", "itemText" }, new int[] { _image, _text }); return simperAdapter; } @Override public boolean onMenuOpened(int featureId, Menu menu) { if (menuDialog == null) { menuDialog = new r(this).setView(menuView).show(); } else { (); } return false;// 返回为true 则显⽰系统menu }

}效果浏览:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688673421a161481.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信