在android中自定义上下文菜单的视图?

时间:2013-12-26 09:02:12

标签: android

你好,这里是我的上下文菜单的图像 但我不知道如何定制它的观点??

我使用此代码

创建了上下文菜单
  @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    {//local=v;
                    super.onCreateContextMenu(menu, v, menuInfo);      
                   info = (AdapterContextMenuInfo) menuInfo;
                   menu.add(Menu.NONE, v.getId(), 0, "Play");
                   menu.add(Menu.NONE, v.getId(), 0, "Queue song");                  
                   menu.add(Menu.NONE, v.getId(), 0, "Edit tags");
                   menu.add(Menu.NONE, v.getId(), 0, "Set as ringtone");
                   menu.add(Menu.NONE, v.getId(), 0, "View details");
                   menu.add(Menu.NONE, v.getId(), 0, "Delete");

    }

enter image description here

但我的菜单看起来不像下面那个.............  我不知道我怎么能改变上下文菜单的颜色等?还有出现的紫色线,是一个九个补丁图像???

enter image description here

2 个答案:

答案 0 :(得分:4)

您可以使用AlertDialog来实现任何自定义上下文菜单。通过

创建自定义样式视图
AlertDialog.Builder.setCustomTitle(View customTitleView) & AlertDialog.Builder.setView(View view)

您可以收听长按事件,然后弹出此对话框。

答案 1 :(得分:2)

我对你的问题感到困惑,如果我错了,请纠正我,

案例1:您只想将标题设置为您粘贴的第二张图片。为此,你必须setTitle()喜欢menu.setHeaderTitle("Select Option");, 所以,整个代码应该是这样的,

   @Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
{//local=v;
                super.onCreateContextMenu(menu, v, menuInfo);      
               info = (AdapterContextMenuInfo) menuInfo;
               menu.setHeaderTitle("Select Option"); 
               menu.add(Menu.NONE, v.getId(), 0, "Play");
               menu.add(Menu.NONE, v.getId(), 0, "Queue song");                  
               menu.add(Menu.NONE, v.getId(), 0, "Edit tags");
               menu.add(Menu.NONE, v.getId(), 0, "Set as ringtone");
               menu.add(Menu.NONE, v.getId(), 0, "View details");
               menu.add(Menu.NONE, v.getId(), 0, "Delete");

}

案例2:您正在询问其他一些主题。在这种情况下,您应该使用其他上下文菜单主题。

案例3 :您完全想要更改用户界面,并且想要创建自己的用户界面。在这种情况下,您应该create custom dialog并使用上下文菜单。