"when the dismiss listener fires, can i tell which button caused the dismiss?"
No - I don't think any of the buttons by default cause the dialog to be dismissed. This happens when you call dismiss() or cancel() on the dialog or the user presses the back button. "so in the click listener, i set a member flag according to which button was clicked. then in the dismiss listener, i then check the flag to see whether to proceed or not" But you have set on click listeners for each of the two buttons you have, no? So why not handle their actions in their respective click listeners? What are you doing in each of those listeners (I'm going to bet you're dismissing the dialog after storing the flag...)? "the other issue i have with Android's dialogs is that if the contents fail validation and the dialog needs to be re-presented, i have to re-show it in the dismiss listener" No, you don't have to do this. In your listener for the OK button you can get the text field, validate it, and if it fails show a toast message, and don't dismiss the dialog. If it succeeds, do what you need to with the entered data and THEN call dismiss() on the dialog. If you want to get fancy you can also validate the user data as they type and disable and enable the OK button in response so they can only hit OK when they've entered valid data. Also, I highly doubt you need the dismiss listener in your case. Hope that helps. ------------------------------------------------------------------------------------------------- TreKing - Chicago transit tracking app for Android-powered devices http://sites.google.com/site/rezmobileapps/treking On Thu, Nov 19, 2009 at 8:00 PM, Jason Proctor < [email protected]> wrote: > i never look forward to handling Android dialogs, maybe someone can > point me to a better way of doing it than i'm doing right now. > > say i have a dialog which has one text field in it, and OK and Cancel > buttons. i make the dialog with AlertDialog.Builder, and set click > listeners on the buttons and dismiss listener on the dialog. > > when the dismiss listener fires, can i tell which button caused the > dismiss? i don't see how, so in the click listener, i set a member > flag according to which button was clicked. then in the dismiss > listener, i then check the flag to see whether to proceed or not. a > rather backward process. am i missing something? > > the other issue i have with Android's dialogs is that if the contents > fail validation and the dialog needs to be re-presented, i have to > re-show it in the dismiss listener. in every other environment known > to man, dialogs are (somewhat) modal, so the dialog stays up unless > expressly dismissed by code. IMHO, the latter makes more sense. > > thanks for any help with this stuff, > -- > jason.vp.engineering.particle > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected]<android-developers%[email protected]> > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

