2011年3月27日日曜日

AlertDialogで二重クリック

androidのAlertDialogは、ボタンが一回押されたら閉じてしまう。だから、ボタンは一回しか押されない。そう思っている時期が私にもありました。
でも、違いました。AlertDialogは、二度押しを防ぐ仕様にはなっていません。

最近、AlertDialogのボタンが二度押しされていると思わせるような事があったので、簡単なサンプルを書いてエミュレーターで試してみました。
new AlertDialog.Builder(DialogTestActivity.this)
.setTitle("Dialog Test")
.setMessage("Are you OK?")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
 @Override
 public void onClick(DialogInterface dialog, int which) {
  Log.d(TAG, "Clicked OK.");
 }
})
.setNegativeButton("Cancel", null).show();
こんなコードを書いて、表示されたダイアログのOKボタンをダブルクリックすると、二重押しを示すログが残ります。
03-27 10:02:27.576: DEBUG/DialogTest(317): Clicked OK.
03-27 10:02:27.629: DEBUG/DialogTest(317): Clicked OK.
OnClickListener()の中に多重実行を想定していない処理が書いてあると、問題が起きるかも知れません。

0 件のコメント:

コメントを投稿