2016-06-01 10 views
1

ポップアップウィンドウを表示する2つのボタンがあります。私は外部をクリックすると、これらのポップアップウィンドウを閉じるようにコーディングしました。ポップアップウィンドウを閉じて問題を開く

私の問題は、

第1ポップアップウィンドウが開いている場合は、第2ボタンをクリックして第2ポップアップウィンドウを開き、第1ポップアップウィンドウを閉じます。 2番目のポップアップを開くには、もう一度ボタンをクリックする必要があります。

ボタンをダブルクリックしないようにする方法はありますか?

私のコード:

btn_a.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View popup_view = lInflater.inflate(R.layout.popup, null); 
      final PopupWindow popup = new PopupWindow(popup_view,200,110,true); 
      popup.setFocusable(true); 
      popup.setBackgroundDrawable(new ColorDrawable()); 
      popup.setOutsideTouchable(true); 
      popup.showAsDropDown(btn_period,0,0); 
     } 
    }); 


    btn_b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View popup_view2 = lInflater.inflate(R.layout.popup2, null); 
      final PopupWindow popup2 = new PopupWindow(popup_view2,200,110,true); 
      popup2.setFocusable(true); 
      popup2.setBackgroundDrawable(new ColorDrawable()); 
      popup2.showAsDropDown(btn_shops,0,0); 

     } 
    }); 
+0

をあなたのボタンがアクティビティレイアウトにある場合、ポップアップの外側をクリックするとポップアップがキャンセルされるだけで、アクティビティのクリックはトリガーされませんレイアウトのボタン – Sunshinator

答えて

0

あなたはこれらのプロパティを使用する必要があります。

popupWindow.setTouchable(true); 
popupWindow.setFocusable(false); 
popupWindow.setOutsideTouchable(false);` 

をし、2番目のポップアップをクリックしたときに、この機能を使って、最初のポップアップを閉じる:

if(popup_view.isShowing(){ 
    popup_view.dismiss(); 
} 
関連する問題