选择菜单项时显示弹出窗口

时间:2014-03-26 22:38:42

标签: android menu menuitem popupmenu android-popupwindow

我正在尝试在按下某个菜单项时创建一个弹出窗口。我想我有大部分代码,但是我不知道如何为showAtLocation(...)或showAsDropDown(...)做些什么。

public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
         ...
        case R.id.about:
          displayPopupWindow();
          return true;
         ...
      }
}

public void displayPopupWindow() {
    PopupWindow popup = new PopupWindow(this);
    View layout = getLayoutInflater().inflate(R.layout.popup, null);
    popup.setContentView(layout);
    popup.setOutsideTouchable(true);
    popup.setFocusable(true);
    popup.showAtLocation(??, Gravity.CENTER, 0, 0);
}

我应该为菜单视图添加什么,还是应该以其他方式执行此操作?我希望这是有道理的,并感谢你的帮助!

1 个答案:

答案 0 :(得分:7)

我知道它已经过去了4个月,也许你已经通过了,但我是你的解决方案,我昨天刚刚在这里报名,所以是啊..这是你问题的解决方案,复制和粘贴......

public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
     ...
    case R.id.about:
      displayPopupWindow();
      return true;
     ...
     }
}

public void displayPopupWindow() {
    PopupWindow popup = new PopupWindow(this);
    View layout = getLayoutInflater().inflate(R.layout.popup, null);
    popup.setContentView(layout);
    popup.setOutsideTouchable(true);
    popup.setFocusable(true);
    popup.showAtLocation(layout, Gravity.CENTER, 0, 0);
}

所以基本上你所做的就是你使用你膨胀的视图,在你的情况下是“布局”。 希望它有所帮助,让我知道......