2012年3月4日日曜日

ダイアログの表示方法による違いについて

ダイアログ(Dialog)の作り方ですが、
show(); で直接表示する方法と、
create(); でインスタンスを作り、Activityにヒモづいて表示させる方法があります。

ただし、show(); を使うと以下のように
http://androidr.sblo.jp/article/44022356.html
バックグラウンドでエラーが発生します。

なのでcreate(); を使いたくなるのですが、
ダイアログ表示の度に、表示内容を変更したい場合は注意が必要!
一回目の表示の時に、インスタンスが作成されるので二回目以降に処理がされません。

※参考
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=52

回避するには、removeDialog()でインスタンスを削除します。


final static int DIALOG1=0;

showDialog(DIALOG1);

Dialog onCreateDialog(int id)~
return new AlertDialog.Builder ~ .create();

removeDialog(DIALOG1);


追記)
上記メソッドは現時点で非推奨になっています。
http://developer.android.com/reference/android/app/Activity.html#showDialog(int)

0 件のコメント: