我是一名有经验的 Java 程序员。我开始从事一个小型 Android 项目,但我对 Android 有多少复杂的编程只是为了更灵活而感到非常沮丧。确切地说,我遇到的问题如下:我有一个菜单项,我需要在 mu app 内的多个菜单中使用它。有没有办法创建一个菜单项对象(可能将一些功能关联到它)并传递它以便任何活动都可以将它添加到它自己的上下文菜单中?
我试过这个:创建了一个“res.menu.mymenu.xml”文件,其中包含一个与另一个“res.menu.mymenu2.xml”文件中的菜单项具有相同ID的菜单项。然后我试过这个:
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 一样)?