安卓和菜单

标签 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:onClick 不适用于 Android 4.0.3

javascript - 使用javascript将事件类添加到主菜单

html - 如何垂直对齐顶部和主菜单?

c++ - 在 C++ 中切换 Windows 菜单项复选框

android - 如何创建指向苹果商店和Playstore的链接?

java - Java 8 藏在哪里?

android - 隐藏对象时对象的高度不会降低 - Android 布局

android menuItem文本更改

android - 如何使用Android Studio在Android L或4.4上运行应用程序?

android - 如何防止网站的移动(android)版本上的字体更改