如何创建与ContextMenu完全相同的对话框?

时间:2011-08-05 15:17:03

标签: android android-layout dialog contextmenu

有时使用标准活动方法创建ContextMenu并不方便(因为在一个活动中可能有很多地方但在不同的类中需要显示上下文菜单)。

但是从任何地方创建对话框都很容易。 如何创建与ContextMenu完全相同的对话框?我在哪里可以找到标准上下文菜单的布局或类似的内容?

2 个答案:

答案 0 :(得分:6)

我决定使用AlertDialog与列表(http://developer.android.com/guide/topics/ui/dialogs.html#AddingAList)而不是ContextMenu。它看起来像ContextMenu(可能,不完全是因为布局不同),但它更灵活,因为我可以在不同的侦听器中处理不同的操作。

答案 1 :(得分:1)

您可以找到有用的MenuBuilderContextMenuBuilderMenuDialogHelper(请参阅code here)。特别是,MenuDialogHelper与你想要达到的目标最接近。

注意下一个菜单类型:

/**
 * The menu type that represents a menu dialog. Examples are context and sub
 * menus. This menu type will not have a corresponding MenuView, but it will
 * have an ItemView.
 */
public static final int TYPE_DIALOG = 2;

结合这一行:

// Order must be the same order as the TYPE_*
static final int ITEM_LAYOUT_RES_FOR_TYPE[] = new int[] {
    com.android.internal.R.layout.icon_menu_item_layout,
    com.android.internal.R.layout.list_menu_item_layout,
    com.android.internal.R.layout.list_menu_item_layout,
};

很明显list_menu_item_layout是您正在寻找的布局。它可以找到here。此布局表示上下文菜单列表视图中的单个项目。