0

以前にこの質問を送信しましたが、コードをさらに貼り付けるため、削除しました。

私の問題は、クリックすると2つのボタンが表示されるときにPopupUpWindowが表示されることでした。したがって、これら2つのボタンにはOnClickがありますが、何も起こりません。コードを貼り付けます。

        // PopupWindow de Exit

    Button exit=(Button) findViewById(R.id.button1);
    popUpView = getLayoutInflater().inflate(R.layout.estadisticaspopupwindowexit, null); 
    mpopup = new PopupWindow(popUpView, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, true);


    exit.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            System.out.println("no clicked");//For checking that it's ok
            mpopup.showAtLocation(popUpView, Gravity.BOTTOM, 0, 0);
            // UNTIL HERE IT'S OK
            View viewexit = (LinearLayout) factory.inflate(R.layout.estadisticaspopupwindowexit, null);
            Button si=(Button) viewexit.findViewById(R.id.buttonyes);
            Button no=(Button) viewexit.findViewById(R.id.buttonno);

            // THESE ARE BUTTONS CALLED FROM ANOTHER XML FILE

            si.setOnClickListener(new View.OnClickListener(){                   
                @Override
                public void onClick(View v) {
                    Intent intencion=new Intent(estadisticas.this, datosusuario.class);
                    startActivity(intencion);
                }


            });
            no.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v){
                    mpopup.dismiss();
                    System.out.println("no clicked"); 
// I'M WRITING THE LAST THING FOR CHECKING ON MY LOGCAST IF IT REALLY WORKS, BUT NOTHING HAPPENS

                }
            }); 


        }

    });

それがすべてです。ありがとうございました

4

2 に答える 2

0

多分あなたは使うべきです

Button si=(Button) popUpView.findViewById(R.id.buttonyes);
Button no=(Button) popUpView.findViewById(R.id.buttonno);
于 2012-04-22T16:22:43.947 に答える
0

AlertDialog.Builderを使用しても、同じ結果を得ることができます。次に、2つのボタンを持つポップアップを表示するサンプルコードを示します。

public class UIHelper {
   public static void createInformationalAlert(Context context,
        DialogInterface.OnClickListener positiveButtononClickListener,
        DialogInterface.OnClickListener negativeButtononClickListener,
        String content, String positiveButtonCaption,
        String negativeButtonCaption) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(content)
            .setPositiveButton(positiveButtonCaption,
                    positiveButtononClickListener)
            .setNegativeButton(negativeButtonCaption, negativeButtononClickListener);
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}
}

次に、ポップアップを表示するには、次のコードを使用します。

UIHelper.createInformationalAlert(this,
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub

                }
            }, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub

                }
            }, "Are you sure you want to exit?", "Yes", "No");

カスタムビューを拡張する場合は、setView(View)を使用します

于 2012-04-22T16:43:11.317 に答える