android中的多个弹出窗口

android中的多个弹出窗口,android,popup,Android,Popup,我在单个活动中有两个线性布局。 我想在单击时在每个按钮上显示自定义弹出窗口。 当我单击第一个布局时,弹出窗口出现,然后单击第二个布局时,两个弹出窗口都显示出来。如何一次只显示一个弹出窗口 这是我的密码 workLinearLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LayoutInflater layoutInflate

我在单个活动中有两个线性布局。 我想在单击时在每个按钮上显示自定义弹出窗口。 当我单击第一个布局时,弹出窗口出现,然后单击第二个布局时,两个弹出窗口都显示出来。如何一次只显示一个弹出窗口

这是我的密码

    workLinearLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    LayoutInflater layoutInflater=          
   (LayoutInflater)getBaseContext()
    .getSystemService(LAYOUT_INFLATER_SERVICE);
     View popupView =   layoutInflater.inflate
    (R.layout.activity_your_places__work__popup, null);
     updateTextView = (TextView)    
     popupView.findViewById(R.id.UpdateTextView);
     updateTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Your_Places2Activity.this,       
                    UpdateWorkAddressActivity.class);
                    startActivity(i);
                }
            });
            deleteTextView = (TextView)     
            popupView.findViewById(R.id.DeleteTextView);
            deleteTextView.setOnClickListener(new View.OnClickListener()                
            {
                @Override
                public void onClick(View v) {
                   //code to delete address
                }
            });
            popupWindowWork = new PopupWindow(
                    popupView,
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT);
            //dismiss other popup if is showing
            if(popupWindowHome.isShowing())
            {
                popupWindowHome.dismiss();}
            //display popup
            popupWindowWork.showAsDropDown(workLinearLayout, 0, -70);

           }
         });
我在其他线性布局上也做过同样的事情

popupWindowWork = new PopupWindow(
                popupView,
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
if(popupWindowHome.isShowing())
{
    popupWindowHome.dismiss();
}
在这一行中,如果显示了
popupWindowHome
,您将关闭
popupWindowHome
对话框,而
popupWindowHome
是新对话框。在构造函数调用之前移动if语句

if(popupWindowHome != null && popupWindowHome.isShowing())
{
    popupWindowHome.dismiss();
}
popupWindowWork = new PopupWindow(
                popupView,
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);

谢谢,但只要点击两个线性按钮中的任何一个,应用程序就会崩溃layouts@user4579047忘记先添加检查对话框是否为空。我编辑了我的答案。如果你的应用程序仍然崩溃,请发布你得到的异常。(坠机的原因可能与此无关)很高兴我能帮忙。在堆栈溢出时,当有人回答您的问题时,您应该选择他们的答案。