- 浏览: 433633 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
yehuiyan8002:
支持中文查询
快熟查找联系人 -
lehehe:
现成的接口,免费试用,http://www.haoservic ...
天气Widget -
D.Z:
android:focusable="false&q ...
CheckBox在ListView 而导致其OnItemClickListener不会被触发 -
freecode:
碰到该问题,CheckBox的android:focusabl ...
CheckBox在ListView 而导致其OnItemClickListener不会被触发 -
echohfut:
哥们,新博客是不是在墙外啊?不能访问。还有你怎么进行博客迁移的 ...
博客 迁移
Menu
[功能]
Menu 对手机界面友好来说 是不可缺少的
而且 不仅可以通过java来创建/使用 menu 还可以通过xml 来创建/使用
[原理]
1. android 自身提供了对 menu 的良好支持 但是需要注意一点:menu 是绑定在 Activity 的。
2. 我们要做的就是:填充下列函数的实现部分:
public boolean onCreateOptionsMenu(Menu menu)
public boolean onOptionsItemSelected(MenuItem item)
public boolean onPrepareOptionsMenu(Menu menu)
以上3个函数的用途 从函数名应该就能知道了 就不多说了 比较特殊的是 public boolean onPrepareOptionsMenu(Menu menu) 这个函数会在你每次点击MENU键时被调用 所以我们可以在这里根据一些状态的变化来实时更新 menu 的内容 比如标题或作用
比如:有一个播放的功能 要求有一个menu 用来 播放/暂停 功能 且要二者公用一个 menu 且该menu 的标题要实时改变 比如 如果此刻正在播放 要求其标题为"暂停" 反之为"播放" 那么应该如何实现呢? (设:该menu的id为: int play = Menu.FIRST +3 ).代码如下:
[代码]
1. menu @ java
2. menu @ xml
menu_item.xml
over!!!
[功能]
Menu 对手机界面友好来说 是不可缺少的
而且 不仅可以通过java来创建/使用 menu 还可以通过xml 来创建/使用
[原理]
1. android 自身提供了对 menu 的良好支持 但是需要注意一点:menu 是绑定在 Activity 的。
2. 我们要做的就是:填充下列函数的实现部分:
public boolean onCreateOptionsMenu(Menu menu)
public boolean onOptionsItemSelected(MenuItem item)
public boolean onPrepareOptionsMenu(Menu menu)
以上3个函数的用途 从函数名应该就能知道了 就不多说了 比较特殊的是 public boolean onPrepareOptionsMenu(Menu menu) 这个函数会在你每次点击MENU键时被调用 所以我们可以在这里根据一些状态的变化来实时更新 menu 的内容 比如标题或作用
比如:有一个播放的功能 要求有一个menu 用来 播放/暂停 功能 且要二者公用一个 menu 且该menu 的标题要实时改变 比如 如果此刻正在播放 要求其标题为"暂停" 反之为"播放" 那么应该如何实现呢? (设:该menu的id为: int play = Menu.FIRST +3 ).代码如下:
private static final int play = Menu.FIRST +3; MediaPlay mp = new MediaPlay(); MenuItem item = menu.findItem(play ); if(mp.isPlaying()){ item.setTitle("stop"); } else { item.setTitle("play"); }
[代码]
1. menu @ java
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MenuAdd1Usage extends Activity { private static final int Menu1 = Menu.FIRST; private static final int Menu2 = Menu.FIRST+1; private static final int Menu3 = Menu.FIRST+2; private static final int Menu4 = Menu.FIRST+3; private static final int Menu5 = Menu.FIRST+4; private static final int Menu6 = Menu.FIRST+5; private static final int Menu7 = Menu.FIRST+7; public int FLAG_STATUS = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, Menu1, 0, "Menu-1").setIcon(R.drawable.se32); menu.add(0, Menu2, 0, "Menu-2").setIcon(R.drawable.heart); menu.add(0, Menu3, 0, "Menu-3"); menu.add(0, Menu4, 0, "Menu-4"); menu.add(0, Menu5, 0, "Menu-5"); menu.add(0, Menu6, 0, "Menu-6"); menu.add(0, Menu7, 0, "Menu-7"); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu1: //to fill action listened by MenuItem break; } return false; } public boolean onPrepareOptionsMenu(Menu menu) { Log.d("TAG","-------------------------"); MenuItem item = menu.findItem(Menu1); item.setEnabled(false); //to query menu //MenuItem item = menu.findItem(MENU_QUIT); //item.setChecked(false); //item.setTitle("update"); /* to update menu if(FLAG_STATUS == 0){ item.setTitle("QUIT-1"); FLAG_STATUS = 1; } else { item.setTitle("QUIT-0"); FLAG_STATUS = 0; } */ /* to add menu if(FLAG_STATUS == 0){ menu.add(0, MENU_NEW_NEW, 0, "New NEW"); } */ return true; } }
2. menu @ xml
public class MenuAdd2Usage extends Activity { public int FLAG_STATUS = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.layout.menu_item, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.Item_1: Log.d("TAG","[Item_1]"); break; case R.id.Item_2: Log.d("TAG","[Item_2]"); break; case R.id.Item_3: Log.d("TAG","[Item_3]"); break; } return false; } public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item = menu.findItem(R.id.Item_2); item.setEnabled(false); /* if(FLAG_STATUS == 0){ item.setTitle("QUIT-1"); FLAG_STATUS = 1; } else { item.setTitle("QUIT-0"); FLAG_STATUS = 0; } */ return true; } }
menu_item.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/Item_1" android:title="Item_1" /> <item android:id="@+id/Item_2" android:title="Item_2" /> <item android:id="@+id/Item_3" android:title="Item_3" android:enabled="false" /> </menu>
over!!!
评论
2 楼
gryphone
2010-04-22
删
似乎不可以 不过你可以使用PopupWindow + GridView 来达到该效果 更多细节 见:Menu 大变脸
adamli007 写道
请问怎样使menu整体居中,菜单上下显示?
似乎不可以 不过你可以使用PopupWindow + GridView 来达到该效果 更多细节 见:Menu 大变脸
1 楼
adamli007
2010-04-21
请问怎样使menu整体居中,菜单上下显示?
发表评论
-
滑动抽屉 另一种解决办法
2010-07-09 17:43 0滑动抽屉 -
Spinner 定制化 增强版
2010-07-09 14:34 2609Spinner 作为下拉选 ... -
ListView 内容之分批显示
2010-06-25 20:38 5925ListView 内容循环显示 大家试想 假如 ... -
MediaScanner 研究
2010-06-23 15:21 3170MediaScanner 之所以拿MediaSc ... -
CheckBox在ListView 而导致其OnItemClickListener不会被触发
2010-06-22 20:55 19015CheckBox在ListView 而导致其OnItemCli ... -
获取Launcher 启动列表
2010-06-22 10:09 3138获取Launcher 启动列表 即 列出所有Launc ... -
PreferenceActivity 全接触
2010-06-19 12:53 9440PreferenceActivity 为了引入 ... -
android src 下载 编译 安装 全接触
2010-06-12 14:44 0android src - download install ... -
Intent.createChooser() 妙用
2010-06-12 11:14 5955Intent.createChooser(ntent targ ... -
SMS管理:收信箱 发信息 编写新信息
2010-06-07 08:14 14445SMS管理 [功能] 1. 收信箱:显示 ... -
求 android 手机 帮忙测试sms服务系统 谢谢
2010-06-05 08:25 1452Hi guys, 最近一段时间没有更新blog 因为一 ... -
流媒体 播放 理论篇
2010-05-28 14:42 2224流媒体播放 之所以为理论篇 因为该篇仅实现了播放功能 ... -
NDK 搭建与HelloWorld
2010-05-19 09:48 3225NDK [前提] 1. Cygwin 用于安装 ... -
自定义字体
2010-05-15 10:49 1221自定义字体: []代码 步骤] 1 ... -
模糊查找 再深入
2010-05-15 09:41 3158模糊查找 再深入 应某位大哥要求 再次对 SQLite ... -
快捷方式Bar + ViewGroup - 自定义
2010-05-09 09:20 2470TabActivity - 自定义 其实 这篇感觉极鸡 ... -
View 拖动&插入 研究
2010-05-09 07:14 3985View 拖动&插入 即: ... -
带图标 快捷键 Menu - 终极版
2010-05-04 20:23 1837Menu 改头换面 扩展如下: 1. 图标化文字 2 ... -
*.gif 解码 - 实践
2010-05-02 18:58 1737*.gif decode 前面已经说过 今天不打算再说了 ... -
*.gif 解码 - 理论
2010-05-01 21:11 1522我们知道Android 默认是不支持*.gif 的 但是 ...
相关推荐
在探讨《StrutsMenu使用笔记》这一主题时,我们深入解析了StrutsMenu框架的集成与配置过程,以及如何在Web应用中有效利用其提供的菜单功能。以下是对该主题核心知识点的详细阐述: ### StrutsMenu简介 StrutsMenu...
在这个"TabMenu使用"的示例中,我们将深入探讨如何实现一个支持分页的TabMenu,并参考提供的资源——一个名为"TabMenuDemo"的项目。 1. **TabMenu设计原则**: - 易用性:TabMenu应清晰地显示各个选项,确保用户能...
本篇文章将深入探讨如何在`Activity`中使用`Menu`,并提供一个详细的示例源码解析。 ### Menu基础 `Menu`在Android中主要通过`onCreateOptionsMenu()`方法创建。在`Activity`中重写这个方法来定义菜单项: ```...
本篇文章将深入探讨如何在项目中使用DropDownMenu,以及它带来的优势。 首先,DropDownMenu的基本概念是,它是一个隐藏的菜单,只有当用户触发特定事件(如点击按钮或图标)时才会显示出来。这种设计模式在移动应用...
此外,使用Android Debug Bridge (ADB) 可以在设备上调试Menu,检查其在不同设备和屏幕尺寸上的表现。 在实际开发中,自定义Menu可能涉及到更多复杂的需求,如动态加载菜单项、异步更新菜单状态等。理解Android ...
本文将深入探讨Android中`.Menu`的使用,包括其创建、配置以及在不同场景下的应用。 首先,我们来了解如何创建一个菜单。在Android中,菜单定义在XML资源文件中,通常位于`res/menu`目录下。例如,我们可以创建一个...
使用NavMenu控件时,开发者需要注意以下几点: 1. **设计与布局**:菜单的设计应该简洁明了,避免过多的层次,以减少用户的认知负担。使用适当的分隔符和图标可以帮助区分不同的功能区域。 2. **事件处理**:为每...
Menu(菜单)是Android中一定会使用的模块,每个Android项目都会用到Menu来给用户起到选择和导航的作用,提升用户体验,下面通过本文给大家分享android 中menu使用,需要的朋友一起看看吧 很多activity界面中都存在...
除了基础的Menu使用,还可以利用Menu的其他功能,如添加子菜单、添加检查标记(`android:checked`)、分组(`<group>`标签)等。同时,可以使用`MenuItem`对象的`setTitle()`、`setIcon()`等方法动态修改菜单项的...
dropdownmenu一个写好的微信小程序帅选条件框,多条件筛选,下拉菜单,直接引用组件就可以 读懂并灵活运用必须具有html,css ,js基础,除此之外还必须阅读小程序官方文档对组件的封装与使用相关文档
欢迎使用本menu 使用说明: 1 添加删除menu项目时,首先,在html页面中添加menu内容,其次,必须要在js文件中最上面添加删除“time”和“link”对象声明,最后要在html页面的开头添加删除初始化项目...
《Struts Menu使用指南.doc》则更倾向于实际操作,可能包含详细的示例代码和步骤,指导开发者在项目中集成StrutsMenu。使用指南可能涵盖从安装库、添加依赖到运行示例的全过程。同时,它可能还讨论了如何处理常见...
3. **数据库配置**:如果Struts_Menu使用数据库存储菜单信息,你需要配置数据库连接,并创建相应的表。 4. **创建菜单配置**:根据需求创建菜单配置文件,定义菜单的层次结构和权限控制。 5. **整合到Web应用**:在...
本文将深入探讨“jquery-tab-menu”这一主题,包括它的实现原理、使用方法以及优化策略。 一、jQuery Tab Menu 的基本概念 jQuery Tab Menu是基于jQuery构建的一种网页菜单组件,通常由一系列可切换的选项卡和对应...
"Struts_Menu使用.doc"很可能是关于StrutsMenu的详细教程,讲解如何配置、创建和管理菜单项。最后,"appfuse环境的配置及display、strutsMenu的使用.ppt"很可能是一个演示文稿,图文并茂地展示了如何设置AppFuse环境...
5. **视频教程**:“速动画教程第十四集.exe”和“.rtf”可能是对Struts-menu使用方法的详细教学,通过视频和文档形式提供教学内容。视频通常能更直观地展示操作步骤,而RTF(Rich Text Format)文件可能包含了文字...
}使用教程添加DropDownMenu 到你的布局文件,如下<com android:id="@ id/dropDownMenu" android:layout_width="match_parent" android:layout_height="match_parent" app:ddmenuTextSize="13sp" app:...
2. CSS:ReSmenu使用CSS进行样式定义,包括菜单项的布局、颜色、字体等。通过媒体查询(Media Queries)实现响应式设计,使得菜单在不同设备上能自动调整样式。 3. HTML5:HTML5的新特性,如标签用于定义导航菜单,...