安卓和菜单

标签 android menuitem

我是一名经验丰富的 Java 程序员。我开始从事一个小的 Android 项目,我对 Android 有多少复杂的编程只是为了更灵活感到非常沮丧。 确切地说,我遇到的问题如下:我有一个菜单项需要在 mu 应用程序的多个菜单中使用。有没有一种方法可以创建一个菜单项对象(可能将一些功能关联到它)并传递它以便任何 Activity 都可以将它添加到它自己的上下文菜单中?

我试过这个: 创建了一个“res.menu.mymenu.xml”文件,其中包含一个菜单项,其 ID 与另一个“res.menu.mymenu2.xml”文件中的菜单项相同。然后我试过这个:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(getMenuToInflate(), menu);
    menu.add(0, R.id.mnhidefrom, 0, ((MenuItem)findViewById(R.id.mnhidefrom)).getTitle());
    HideMenuAction.prepareAndGetHideMeMenuItem(menu, menuInfo); //creating an intent for "hide" menu item that will hold some data needed when user clicks the menu item.
}

但运气不好...我在“menu.add”行遇到“空指针异常”...

是否有一种正常的、面向对象的方法来创建一个菜单项,该菜单项将知道它应该做什么而不管外部的任何东西(比如,它所属的菜单),然后像任何其他对象一样传递它并添加它到我喜欢的任何菜单(就像我可以用 Swing 菜单和 JMenuItems 做的那样)?

最佳答案

Ahmad 只说了一半。这将为您提供始终可用的菜单选项基础。添加特定于每个扩展 Activity 的菜单选项的方法是为其编写一个 fragment 。该 fragment 将包含在 Activity 布局中,但您可以使其不占用空间或将其用于填充。当 Fragment 实现 onCreateOptionsMenu 时,它添加的选项将与 Activity 创建的选项合并。

阅读本指南中与选项菜单有关的所有内容,了解更多详情: http://developer.android.com/guide/topics/ui/menus.html

关于安卓和菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16502296/

相关文章:

android - loadData 尝试在 webview 中使用数据作为 url

android - 无限项的无限滚动

android - setIcon(ic_menu_more) 没有效果

android - 是否可以在 Android 中灰显(不仅仅是禁用)MenuItem?

Android 减少 actionbarsherlock 的操作栏中图标之间的空间或填充

html - 如何在菜单上进行边框悬停

android - 我必须替换哪个 .png 文件才能在 Android Studio 中更改图标符号

Android Studio 全新安装新建项目失败

java - 将按钮添加到 Action Bar 会导致 R 无法完成

android - 设置选项菜单的内容描述android Talkback