0

警告ダイアログを表示して、AsyncTaskを実行するかどうかについてユーザー入力を取得したいと思います。ただし、AsyncTaskは、ifステートメントに入れても実行されます。なぜこれが起こっているのか誰かが知っていますか?これは私のコードです:

button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Boolean b = false;

            AlertDialog.Builder alertbox = new AlertDialog.Builder(
                    ThisScreen.this);
            alertbox.setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                            b = true;
                        }
                    });
            alertbox.setPositiveButton("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                            b = false;
                        }
                    });

            alertbox.setTitle("Title");
            alertbox
                    .setMessage("Continue?");
            alertbox.show();

            if(b)
                new doAsyncTask().execute;

    }
});
4

2 に答える 2

2

違いがあるかどうかはわかりませんが、論理的には、setNegativeButton()メソッドを使用してno-buttonを設定することです。

于 2011-05-10T08:59:11.060 に答える
1

内部でタスクを実行するには、コードを移動する必要があります

alertbox.setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            runMyDoAsyncTask(); // <-- here
        }
    });

ところで、あなたが提供したコードがコンパイルされるかどうかはわかりません:)

于 2011-05-10T08:37:43.550 に答える