0

ダイアログボックスを生成する次のコードがあります。流れはこんな感じ

テストの終了 -> ユーザーが保存または削除を選択 -> ユーザーが別のダイアログ ボックスの削除を選択すると、削除の確認を求めるポップアップが表示されます。

プログラムは正常に動作します。ただし、複数の削除ダイアログがポップアップする場合があります。私はどこかで間違いを犯しましたか?

ありがとう。

private void buildEndTestDialog(){

    alert = new AlertDialog.Builder(getActivity());
    alert.setTitle("End of Test");
    alert.setCancelable(false);


    alert.setNegativeButton("Save", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //Save
            alert.dismiss();
        }
    });

    alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            buildDeleteDialog();
        }
    });

    alert.show(); 
}

private void buildDeleteDialog() {

    alert = new AlertDialog.Builder(getActivity());
    alert.setTitle("Delete");
    alert.setCancelable(false);
    alert.setMessage("Are you sure you want to delete this result?");
    alert.setNegativeButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //delete result
        }
    });

    alert.setPositiveButton("No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {

            dialog.dismiss();
        }
    });

    alert.show(); 
}
4

1 に答える 1

0

試す..

    private void buildEndTestDialog(){
               ///rest of code
        alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                dialog.dismiss();
                buildDeleteDialog();
            }
        });

        alert.show(); 
    }

    private void buildDeleteDialog() {

        ///rest of code

        alert.setPositiveButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {

                dialog.dismiss();
               buildEndTestDialog();
            }
        });

        alert.show(); 
    }
于 2013-07-26T04:09:35.997 に答える