doseDownCourt()
以下のコードは、ダイアログボックスを表示し、プログラムの状態に応じて、 [OK]をクリックしてダイアログボックスが閉じられたときに アニメーションを実行する(toの呼び出しによって実行される)ことを想定しています。
問題は、ダイアログボックスを閉じてもすぐに消えないことです。アニメーションの実行中および表示中は、[OK]ボタンが「押された」状態(青色の網掛け)で画面に表示されたままになります。ダイアログボックスは、アニメーションが完了するまで画面に表示されたままになります。
コマンドが実行される順序を変更しようとしました。また、スレッドを使用して、ダイアログボックスが表示される前にアニメーションが消えるのを待たせようとしましたが、希望する動作を得ることができませんでした。
任意の提案をいただければ幸いです。ありがとう。
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
String message;
Drawable puffle;
Drawable dr;
if (made == true) {
message = "You made it!!!";
dr = getResources().getDrawable(R.drawable.puff_happy);
}
else {
message = "Aw, you missed. Better luck after your next dose!";
dr = getResources().getDrawable(R.drawable.puff_confused);
}
builder.setMessage(message);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
puffle = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, 200, 200, true));
builder.setTitle(" ");
builder.setIcon(puffle);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
drawAll(); //put ball and shadow back with avatar
doseDownCourt(); //call doseDownCourt in case multiple doses have been taken before a shot for each has been attempted
}
});
alertDialog = builder.create();
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams WMLP = alertDialog.getWindow().getAttributes();
WMLP.y = -300; //y position of dialog box
alertDialog.getWindow().setAttributes(WMLP);
alertDialog.show();