0

3 つの画像ボタンがあり、押すとそれぞれにポップアップ ウィンドウが表示されます。問題は、ボタン 1 をクリックするとポップアップが表示され、そのポップアップを閉じずに代わりにボタン 2 をクリックすると、ボタン 1 とボタン 2 のポップアップが表示されることです。新しいボタンが押されたときに開いているポップアップを閉じるにはどうすればよいですか?

これが私のコードです

final ImageButton rredButton=(ImageButton)findViewById(R.id.RredButton);
    rredButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            LayoutInflater layoutInflater
            = (LayoutInflater)getBaseContext()      
            .getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView = layoutInflater.inflate(R.layout.popupright, null);
            final PopupWindow popupWindow = new PopupWindow(               
                    popupView,                
                    LayoutParams.WRAP_CONTENT,                       
                    LayoutParams.WRAP_CONTENT);     
            Button btnNxtScr = (Button)popupView.findViewById(R.id.nextscreen);             
            btnNxtScr.setOnClickListener(new Button.OnClickListener(){     
                @Override     
                public void onClick(View v) {      
                    Intent myintent1 = new Intent(colorActivity.this,colorBlueActivity.class);
                    startActivity(myintent1);
                }
            });
                    popupWindow.showAsDropDown(rredButton, 1, -1);
        }});

そして、これが他のボタンです(同様のポップアップメソッドを使用)

final ImageButton ryellowButton=(ImageButton)findViewById(R.id.RyellowButton);
    ryellowButton.setOnClickListener(new View.OnClickListener() {
        @Override     
        public void onClick(View arg0) {          
            createWrongPop(arg0);      
            }});
4

1 に答える 1

0

これを行うには、ポップアップが表示されたときにクラスに PopupWindow への参照を保存し、ポップアップが閉じられたときにそれをクリアする必要があります。次に、2 番目のボタンをクリックすると、ポップアップが使用可能かどうかを確認できます。使用可能であれば、.dismiss() を呼び出して新しいものを作成するか、その内容を変更します。

于 2012-10-26T04:37:09.357 に答える