`
tanjw
  • 浏览: 15787 次
社区版块
存档分类
最新评论

为MenuItem添加事件

阅读更多

 

 首先看一下自定义的菜单项

 

在这里我想为id为personlize的MenuItem添加单击事件, 当单击此条目时跳转到另一个Activity.

 

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:title="@string/options" 
          android:icon="@drawable/options"
          android:showAsAction="ifRoom" />
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/personal"
          android:title="@string/personal"
          android:icon="@drawable/personal"
          android:showAsAction="ifRoom" >
        <menu>
            <item
                android:id="@+id/personalize" 
                android:title="@string/personalize"/>
            <item
                android:id="@+id/exit" 
                android:title="@string/exit"/>
            <item
                android:id="@+id/logout" 
                android:title="@string/logout"/>
            <item 
                android:id="@+id/about_us"
                android:title="@string/desc"/>
        </menu>
    </item>
</menu>

 

 

我们要找到这个控件, 注意不能使用   findViewById()  这个方法, Menu 和 View 是不同的选项 , 

我在这里重写了 onPrepareOptionsMenu 方法通过 menu 的 findItem 方法找到对应的组件, 然后为它添加 click 事件 ,

	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
	    menu.findItem(R.id.personalize).setOnMenuItemClickListener(new OnMenuItemClickListener() {
            
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                Intent intent = new Intent(MainPage.this , PersonalAction.class);
                startActivity(intent);
                return true;
            }
        });
	  
	    return super.onPrepareOptionsMenu(menu);
	}

 

或者重写 onCreateOptionsMenu 方法 然后获得组件添加方法也可以.

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
	    getMenuInflater().inflate(R.menu.menu , menu );
	    //setMenuBackground() ;
	    menu.findItem(R.id.personalize).setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
               System.out.println("onMenuItemClick   onCreateOptionsMenu");
                return true;
            }
        });
	    return true;
	}

 
实现效果
       
 
 

  • 大小: 30.6 KB
分享到:
评论

相关推荐

    VB-菜单复制器(详细有注释)

    可以为MenuItem添加事件处理函数,如`Private Sub MenuItem1_Click(sender As Object, e As EventArgs) Handles MenuItem1.Click`,并在函数内编写相应逻辑。 5. **复制菜单结构**:要实现菜单的复制,我们需要遍历...

    wpf菜单MenuItem样式经典

    `1.ico`和`2.ico`可能是应用的图标资源,它们可以被添加到`MenuItem`上以提升用户体验。通过这些文件,开发者可以创建一个既美观又功能完备的`MenuItem`样式。 总的来说,创建一个经典的WPF `MenuItem`样式涉及到对...

    WPF menuItem

    例如,将MenuItem添加到TextBox的上下文菜单: ```xml &lt;MenuItem Header="复制" Command="{Binding CopyCommand}"/&gt; &lt;MenuItem Header="粘贴" Command="{Binding PasteCommand}"/&gt; ``` 总之,WPF中...

    Android MenuItem 自定义长按事件的实现

    通过以上步骤,你就可以成功地为Android应用中的MenuItem定制长按事件,以满足更加个性化的交互需求。记住,良好的用户体验往往源自对细节的精心设计,而自定义事件处理正是实现这一目标的关键途径之一。

    WPF菜单栏,工具栏,TabControl动态添加、删除(支持左右滑动,选择),标题栏可修改背景色

    动态添加菜单项或工具栏按钮,可以使用C#代码在程序运行时动态创建`MenuItem`或`Button`对象,并将其添加到对应的容器中,例如: ```csharp // 创建新的菜单项 MenuItem menuItem = new MenuItem { Header = "新...

    MenuItem自定义菜单项2

    首先,`MenuItem` 是Unity3D中`UnityEditor`命名空间下的一个属性标记,用于在Unity编辑器的主菜单栏中添加新的菜单项。它的基本语法是: ```csharp [MenuItem("MenuPath/MenuItemName")] ``` 这里的"MenuPath"是...

    TreeView MenuItem SiteMapPath的学习笔记

    4. 配置`MenuItem`:根据`TreeView`的`NodeDataBound`事件,自定义`MenuItem`的样式和行为,例如添加CSS类、设置链接目标等。 5. 添加`SiteMapPath`控件:设置其`SiteMapProvider`,并可能调整显示样式,如更改分隔...

    C#动态添加菜单,一步步初学教学源码

    动态添加的菜单项可能需要触发某些操作,所以我们需要为菜单项添加事件处理器。这通常通过添加Click事件来完成: ```csharp // 绑定点击事件 menuItem.Click += new EventHandler(menuItem_Click); // 定义事件...

    android 选项菜单(此处为icon menu)--Menu,SubMenu,MenuItem的用法

    `MenuItem`代表菜单中的单个选项,你可以为每个菜单项设置ID、标题、图标等属性。例如,在XML资源文件`main_menu.xml`中: ```xml android:id="@+id/action_save" android:icon="@drawable/ic_save" android:...

    POWERBUILDER语言,简述如何实现动态添加菜单

    3. 将MenuItem添加到Menu:使用`Add`方法将MenuItem对象添加到Menu对象中。这一步会将新创建的菜单项添加到菜单中: ```pb my_menu.Add(my_menu_item) ``` 4. 将Menu添加到窗口或应用程序:最后,将`my_menu`...

    C#添加鼠标右键方法步骤

    - 需要为每个菜单项添加事件处理器来定义相应的操作。 - 可以通过以下方式添加事件处理器: - 在`ContextMenuStrip`的设计视图中选择菜单项。 - 在属性窗口中找到`Click`事件,双击打开代码编辑器。 - 编写事件...

    VB实现带图标的菜单

    7. **处理菜单项的事件**:在代码编辑器中,你可以为每个MenuItem添加事件处理程序,以响应用户的点击操作。例如,为MenuItem1添加Click事件处理程序: ```vb Private Sub MenuItem1_Click(sender As Object, e As...

    VB菜单中添加小图标

    要为MenuItem添加图标,需要先有一个图标资源。你可以通过各种图像编辑软件(如Photoshop或Paint.NET)创建图标,并将其保存为.ico格式,因为这是VB支持的图标格式。 步骤4:设置MenuItem的Icon属性 在“编辑菜单”...

    VB向菜单中添加图标的实例

    在VB(Visual Basic)编程中,为菜单项添加图标是一项常见的任务,这可以增强用户界面的视觉效果,提高用户体验。本实例将详细讲解如何在VB应用程序中为菜单项添加图标。 首先,我们需要理解VB的基本控件和事件处理...

    在.NET中给Mapobjects地图控件添加右键菜单

    接下来,为每个MenuItem添加Click事件处理程序。这一步将定义当用户在菜单上点击某项时应执行的逻辑。例如,如果你有一个名为"ZoomIn"的MenuItem,你可以这样写: ```csharp private void zoomInToolStripMenuItem_...

    Flex Tree 的右键菜单事件

    `MenuItem`类用于创建菜单项,我们为其设置文本(如"删除")并添加点击事件监听器。`ContextMenu`类则用于存储这些菜单项,并将其设置为Tree的上下文菜单。 当用户点击"删除"菜单项时,会触发`onDeleteClick`事件...

    为系统菜单添加菜单项

    总的来说,无论使用哪种编程语言或框架,为系统菜单添加菜单项都是通过创建菜单、菜单项对象,设置其属性,然后将其添加到主菜单中,并连接相应的事件处理程序。这使得用户能够通过菜单轻松访问应用程序的功能,提高...

    QML自定义菜单样式

    你可以为`MenuItem`的某些属性添加行为,使其在交互时呈现出更丰富的视觉效果。 其次,`MenuBar`是QML中的另一个组件,常用于顶部菜单栏,它包含一系列`MenuItem`。自定义`MenuBar`的样式可能涉及到调整其高度、...

    为窗体添加右键菜单

    总的来说,为WinForms窗体添加右键菜单涉及对MenuStrip控件的使用,设置ContextMenuStrip属性,以及处理菜单项的Click事件。理解这些基本概念和步骤,你就可以在你的C# WinForms应用中灵活地实现自定义的右键菜单...

Global site tag (gtag.js) - Google Analytics