【问题标题】:Popup Menu -How to set programatically inside the LinearLayout弹出菜单 - 如何在 LinearLayout 中以编程方式设置
【发布时间】:2014-11-04 17:18:02
【问题描述】:

我想在 LinearLayout 中设置弹出菜单。

这是我的代码。

for(int i=0;i<ev.size();i++)
                {
                    LinearLayout rl1 = new LinearLayout(getActivity());
                    rl1.setOrientation(LinearLayout.VERTICAL);
                    pum1 = new PopupMenu(getActivity(), view);
                    Event ebn=ev.get(i);
                    CalEvent cal = CalEvent.getCalEvent(ebn.getDescription());
                    pum.getMenu().add(Menu.NONE,ebn.getColor(),Menu.NONE,ebn.getTitle());
                    pum.getMenu().add(Menu.NONE,ebn.getColor(),Menu.NONE,cal.event_start);
                    rl1.addView(pum);
                }   

我正面临这个错误-“ViewGroup 类型中的方法 addView(View) 不适用于参数 (PopupMenu)”。请帮帮我

【问题讨论】:

  • 为什么要在 LinearLayout 中添加弹出菜单?
  • @HareshChhelana 我想为弹出菜单设置边框和颜色。所以我只是试图在布局中添加它,我计划为布局设置边框和颜色。因为在弹出菜单中有两个数据,并且每次迭代它都会获取标题和事件开始。所以我想通过为每一对提供背景边框和颜色来区分这一点。
  • addView() 仅接受 ViewGroup 基本参数,弹出菜单不是 ViewGroup 基本参数,因此不可接受。
  • @HareshChhelana 那么这是为弹出窗口设置背景边框和颜色的任何其他方式吗?

标签: android popupmenu


【解决方案1】:

我想你想在每个数据处打开弹出菜单。

在这种情况下,您必须创建自定义列表视图,您将在其中创建一个适配器类,并且在该适配器类中您可以在每个视图中设置弹出菜单。

【讨论】:

  • 没有。其实我有日历。我正在为特定日期创建事件。如果我为特定日期创建多个事件,那么我想将其显示为一对标题和事件开始时间。因此,当我单击特定日期时,弹出窗口将打开并显示对列表。只是我想通过给出背景边框和颜色来区分每一对。
  • 所以仍然不需要添加这个线性布局。你做错了,你在线性布局的同一个对象中一一添加视图,所以它不起作用。您必须制作包含线性布局的自定义 xml,然后通过创建该自定义 xml.make 一个适配器类,您可以完成您想要的所有功能。我希望你能得到这个答案的帮助。
【解决方案2】:

如果你想创建像日历这样的布局,你应该使用带有自定义适配器的 GridLayout 来设置你的 popupMenu。示例如下:https://stackoverflow.com/a/26545481/3864698

其实你可以用这个:https://github.com/roomorama/Caldroid.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-26
    • 2011-01-29
    • 2013-07-05
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多