I am having a similar issue, where I use onCreateDialog(int) inside I use AlertDialog.builder to build my dialogbox depending on what the int is, and then I use builder.show. However onCreateDialog is only called by onTouch(motionevent) but If I rotate the screen after calling createDialog(2) it will seeminly call itself. I have stepped through the code an oncTouchis never called. I have tried calling dialog.dismiss() in the onClick method that is inside onCreateDialog but it doesn't work.
On Jan 10, 2:57 am, TreKing <[email protected]> wrote: > > The original question was regarding AlertDialog.show() vs. > > AlertDialog.showDialog(), and not involving Activity.showDialog() > > which has no corresponding .show(). > > I think it was AlertDialog.show() vs Activity.showDialog(int), since he > says: > > If you don't call .show and use showDialog from the activity ... > > Plus, there is no AlertDialog.showDialog() ... > > > this seems to imply that the answer to his original > > question is that it's *never* safe to call AlertDialog.show() because > > you can never be sure that the user won't change orientation while the > > dialog is shown. > > It is safe to use AlertDialog.show() if you're keeping a reference to the > dialog and will take care of dismissing it / re-showing it as necessary when > the Activity is destroyed / restarted. This is essentially what the Activity > does for you. > > Unless you have a good reason not to, just stick with showDialog(int) and > let it do the work for you. > > ------------------------------------------------------------------------------------------------- > TreKing - Chicago transit tracking app for Android-powered > deviceshttp://sites.google.com/site/rezmobileapps/treking > > On Sat, Jan 9, 2010 at 2:20 PM, Coco <[email protected]> wrote: > > Great answer, Sean. Thanks. > > The original question was regarding AlertDialog.show() vs. > > AlertDialog.showDialog(), and not involving Activity.showDialog() > > which has no corresponding .show(). Assuming that these services share > > implementations, this seems to imply that the answer to his original > > question is that it's *never* safe to call AlertDialog.show() because > > you can never be sure that the user won't change orientation while the > > dialog is shown. More likely is that I'm just missing something here > > but I just spend a few hours struggling with alert dialogs so it sure > > would be great to see a good simple example of how to safely use them. > > > -Melinda > > > On Jan 8, 9:55 am, Sean Hodges <[email protected]> wrote: > > > When you use Activity.showDialog() you are telling the parent activity > > > to manage the dialog that you create. > > > > From the API docs ( > >http://developer.android.com/intl/fr/reference/android/app/Activity.h...) > > > ): > > > "A call to onCreateDialog(int) will be made with the same id the first > > > time this is called for a given id. From thereafter, the dialog will > > > be automatically saved and restored." > > > > When you rotate the phone, your parent activity is closed and > > > re-created. The showDialog() method tells the activity to > > > automatically re-create the AlertDialog as well. > > > > When you use AlertDialog.show(), you are effectively managing the > > > dialog yourself. This means that when the activity is closed and > > > re-created, you would have to make sure the dialog is dismissed and > > > displayed correspondingly; otherwise the activity *may* be destroyed > > > before the dialog has chance to close, and the internal reference to > > > it will be flagged as leaked. > > > > On Fri, Jan 8, 2010 at 5:15 PM, Michael Dorin <[email protected]> > > wrote: > > > > When creating an AlertDialog...I have noticed in some cases, if you > > > > invoke .show directly, you > > > > get a leaked dialog error when you rotate the phone. > > > > In other cases you don't. > > > > > If you don't call .show and use showDialog from the activity you don't > > > > see the leaked dialogs. > > > > Are there some cases when you can use .show? > > > > > Or is it just dumb luck if you don't see a problem? > > > > > -Mike > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups "Android Beginners" group. > > > > > NEW! Try asking and tagging your question on Stack Overflow at > > > >http://stackoverflow.com/questions/tagged/android > > > > > To unsubscribe from this group, send email to > > > > [email protected]<android-beginners%[email protected]> > > > > For more options, visit this group at > > > >http://groups.google.com/group/android-beginners?hl=en > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Beginners" group. > > > NEW! Try asking and tagging your question on Stack Overflow at > >http://stackoverflow.com/questions/tagged/android > > > To unsubscribe from this group, send email to > > [email protected]<android-beginners%[email protected]> > > For more options, visit this group at > >http://groups.google.com/group/android-beginners?hl=en
-- You received this message because you are subscribed to the Google Groups "Android Beginners" group. NEW! Try asking and tagging your question on Stack Overflow at http://stackoverflow.com/questions/tagged/android To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en

