在一个android创建菜单menu时,需要重写Activity的onCreateOptionsMenu(Menu menu)方法,这个方法只在第一次创建的时候调用一次,所以如果之后想对menu进行动态的修改,那么就不要再对onCreateOptionsMenu做什么手脚了。
于是就要用到onPrepareOptionsMenu(Menu menu)方法了。onPrepareOptionsMenu与onCreateOptionsMenu不同的是,他在每次按下menu硬键之前会被调用,所以可以在这里动态的改变menu。如果需要创建一个全新的菜单,那么可以在
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.clear();
cb=(CheckBox)findViewById(R.id.my_mms_item_checkbox);
menu.add(0, MENU_01, 0, "新建短信").setIcon(R.drawable.menu_new_mms);
Log.d(TAG,"cb.getVisibility():"+cb.getVisibility());
if(cb.getVisibility()==View.GONE)
menu.add(0, MENU_02, 0, "多选").setIcon(R.drawable.mms_multiple);
else
{
menu.add(0, MENU_03, 0, "取消多选").setIcon(R.drawable.mms_multiple);
menu.add(0, MENU_04, 0, "选择全部").setIcon(R.drawable.mms_multiple);
}
return true;
}
如果没有clear而直接add的话,那么菜单中菜单项是会“追加”的,这样,随着你不停的点menu键,菜单项就不停的增加。
另外,android系统默认的菜单样式是支持最多3个一行,如果有4项就每行2个有2行...如果想自定义样式,可以使用xml文件定义样式。
分享到:
相关推荐
在`res/menu`目录下创建一个XML文件,例如`custom_menu.xml`,定义你的自定义菜单项。每个菜单项由`<item>`标签表示,可以设置`android:title`、`android:id`、`android:icon`等属性。 ```xml <menu xmlns:android...
【Side-Menu.Android eclipse完美运行】项目是一个专为Android平台设计的侧滑菜单实现,它在Eclipse开发环境中可以无缝集成并快速运行。这个项目旨在提供一个用户友好的、可定制的侧滑导航菜单,常见于许多移动应用...
Android默认的`Menu`布局是左对齐的,但我们可以修改主题或者在XML布局中添加自定义样式来实现居中。这通常涉及到更改`android:layout_gravity`属性,或者在自定义样式中设置`android:gravity`。 如果想要全局改变...
【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...
这个压缩包包含了名为"Side-Menu.Android-master"的源代码,通常这样的命名方式表示这是一个关于侧滑菜单的实现。 【描述】"安卓UI设计,github开源"揭示了该项目的主要内容是Android用户界面(UI)的设计,而且是...
- 如果需要设置默认选中的菜单项,可以重写`onPrepareOptionsMenu(Menu menu)`方法,在其中调用`menu.findItem(R.id.your_menu_item_id).setChecked(true)`来设置。 5. **更新UI状态** - 当`RadioButton`的状态...
在运行时,我们可以调用`Menu`对象的`add()`, `removeItem()`, `setVisible()`, `setEnabled()`等方法来动态修改菜单。 ### 弹出式Menu 除了在ActionBar/Toolbar中显示,还可以使用`PopupMenu`类创建弹出式的Menu,...
首先,我们需要在项目的res/menu目录下创建一个XML文件,例如`menu.xml`,用于定义菜单项。在这个XML文件中,我们可以使用`<menu>`标签作为根元素,然后用`<item>`标签来定义每个菜单项,包括其ID、标题、图标以及...
下面我们将深入探讨如何在Android中实现动态更新Menu菜单。 1. **创建Menu资源** 首先,我们需要在`res/menu`目录下创建一个XML文件,例如`menu_main.xml`,来定义我们的菜单项。在XML中,我们可以定义各个MenuItem...
在`res/menu`目录下创建XML文件,例如`popup_menu.xml`,用于定义菜单项。每个菜单项通过`<item>`标签来创建,包括`android:title`(菜单项的文本),`android:id`(唯一标识符),以及可选的`android:icon`(图标)...
- 在`onCreateOptionsMenu(Menu menu)`中,通过调用`menu.add()`方法来添加菜单项。你可以设置其标题、图标、快捷键等属性。 - 使用`MenuItem`对象的`setOnMenuItemClickListener()`或`...
这个"study_menu.zip"文件可能包含了一个简单的Android项目,演示了如何在Android应用中使用Menu功能。以下是对Android Menu功能的详细解释: 1. **Menu简介**:在Android中,Menu通常出现在选项卡、下拉列表或者右...
同时,可以使用`MenuItem`对象的`setTitle()`、`setIcon()`等方法动态修改菜单项的属性。 在Android Studio中,可以通过图形化界面(即Android Layout Editor)来设计和预览Menu,这使得创建和调整Menu变得更加直观...
可以在运行时动态地添加、删除或修改菜单项,通过调用`Menu.add()`、`Menu.removeItem()`等方法。 7. **菜单与Fragment的配合** 在使用Fragment时,可以通过覆写`onCreateOptionsMenu()`和`onOptionsItemSelected...
这个“Android Material Design风格的menu动画效果.zip”文件包含了一个项目,展示了如何在Android应用中实现Material Design风格的菜单动画。 Material Design规范包括了丰富的动画效果,这些动画为用户界面增添了...
- 在`onCreateOptionsMenu(Menu menu)`方法中,我们会 inflate 菜单布局,通过`menuInflater.inflate(R.menu.main, menu);`加载`res/menu/main.xml`中的定义。 - `onOptionsItemSelected(MenuItem item)`方法用于...
例如,创建一个名为`main_menu.xml`的文件: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> android:id="@+id/action_add" android:icon="@drawable/ic_add" android:title=...
在上述代码中,`R.menu.main_menu`是一个XML资源文件,定义了菜单项。 整合`ListActivity`和`Menu`的关键在于如何根据用户在菜单中的选择改变列表的状态或者执行相关操作。比如,当用户点击“添加”菜单项时,可以...
开发者可以使用`menu.add()`方法添加菜单项,并通过`menu.getItem()`获取菜单项对象进行进一步的定制。 2. **菜单XML布局**: 自定义菜单通常会涉及到菜单资源文件(如`menu.xml`),在这里定义菜单项的ID、文本、...
本Demo主要展示了如何在Android中创建和使用Menu,特别是处理Menu中的按键事件,以便实现特定的功能,如在本例中修改标题。 首先,我们要了解在Android中创建Menu的基本步骤: 1. 在res/menu目录下创建XML文件来...