5

我喜欢在我的应用程序中添加一个 PopupMenu。问题是它也应该在 Android 2.3 上运行。我发现了一些帖子,人们建议使用 AlertDialog 作为替代方案,但我更喜欢 PopupMenu ;)

我认为它也应该在这个 API 级别上工作,因为我已经在几个应用程序中看到过它(我的手机有 2.3.5 并且工作正常)。

有没有可能使这项工作?

4

2 回答 2

13
  • 您必须在您的应用程序中导入支持 v7,如下所示:添加具有资源的库

  • import android.support.v7.widget.PopupMenu;

  • 用它编译你的代码,然后你的弹出菜单与 android 2.2 及更高版本兼容。

于 2014-06-22T13:33:59.327 回答
3

PopupMenu 是可能的,您可以在发送电子邮件的方法中尝试此操作,您可以根据自己的需要扩充您的 xml:

    LayoutInflater inflater = (LayoutInflater)EEActionListDetail.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    Display display = getWindowManager().getDefaultDisplay();

    int width = display.getWidth()/2;
    int height = display.getHeight()/2;

    View pop = inflater.inflate(R.layout.popupemail,null,false);
    pop.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);
    height = pop.getMeasuredHeight();
    width = pop.getMeasuredWidth()+200;
    pu = new PopupWindow(pop,width,height,true);
    pu.showAtLocation(findViewById(R.id.ll3),Gravity.CENTER,1,1);

    Button brnSend = (Button)pu.getContentView().findViewById(R.id.btnSend);
    Button close = (Button)pu.getContentView().findViewById(R.id.close);

    Subject = (EditText)pu.getContentView().findViewById(R.id.subject);
    Message = (EditText)pu.getContentView().findViewById(R.id.message);

    close.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            pu.dismiss();

        }
    });
    brnSend.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            for(int j=0;j<EmailArray.size();j++){
                String EmailSent = EmailArray.get(j);
                SendEmailALL(EmailSent);
            }
        }
    });
于 2012-09-05T13:57:21.103 回答