1

例:

System.out.println("in!");
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setMessage("test!!!");
    dialog.setPositiveButton(R.string.dialog_ok, 
        new OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                System.out.println("Only one click!");
            }
    });
    dialog.show();

アウト:
イン!
の!
ワンクリック!
ワンクリック!
ワンクリック!
ワンクリック!

4

3 に答える 3

4

ボタン (正) を取得し、有効に false に設定します。

System.out.println("in!");
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage("test!!!");
dialog.setPositiveButton(R.string.dialog_ok, 
    new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // disable on 1st click;
            final AlertDialog alertDialog = (AlertDialog)dialog;
            alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
            System.out.println("Only one click!");
        }
});
dialog.show();
于 2012-12-07T18:08:45.320 に答える
2

私が理解できないのは、何らかのアクションを実行した後にボタンがダイアログを閉じることになっているため、誰かがアラートダイアログをもう一度クリックできる理由です。dialog.dismiss() でダイアログを閉じないのはなぜですか?

于 2012-12-07T18:06:47.420 に答える
0

無効にする必要があります。クラスレベルで保存する必要があるフラグをお勧めします。

Boolean hasBeenClicked=false;


System.out.println("in!");
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setMessage("test!!!");
    dialog.setPositiveButton(R.string.dialog_ok, 
        new OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                if (!hasBeenClicked)
                {
                  hasBeenClicked=true;
                  System.out.println("Only one click!");
                }
            }
    });
    dialog.show();
于 2012-12-07T18:06:22.643 に答える