Ya sure I would like to take a look at it. Thanks alot.

On Jun 20, 11:10 am, Zsolt Vasvari <[email protected]> wrote:
> I've taken care of thedialog'son rotationissuewith a custom
> pattern.  I posted it here a few months ago, but was shut down by
> people.  It's not that simple, but it works very well and the dialogs
> are preserved perfectly.  If you care, I can post my solution again.
>
> On Jun 20, 1:08 pm, William Ferguson <[email protected]>
> wrote:
>
> > Android doesn't handle rotation and dialogs particularly well, mainly
> > due to rotation causing the Activity to be destroyed and a new one
> > created. This leaves Dialogs with an invalid Context. Using managed
> > dialogs (like you are) just shifts the problem, otherwise you get
> > java.lang.IllegalArgumentException: View not attached to window
> > manager instead.
>
> > In Froyo and below calling dismissDialog for an Activity that has
> > already been destroyed causes the Exception you noted. As far as I can
> > recall, Gingerbread logs a message but swallows the Exception. I have
> > tended to add a try/catch around dismissDialog to handle the pre
> > Gingerbread cases.
>
> > You can configure your Activity to stop rotation occurring, or your
> > can code your Activity to handle rotation.
> > But as Streets of Boston says, you don't want to be firing off your
> > AsyncTask in onCreate, at least not without checking to see whether
> > this Activity has already been started/destroyed due to rotation. See
> > #getLastNonConfigurationInstance.
>
> > On Jun 20, 1:52 pm, sahana uday <[email protected]> wrote:
>
> > > Hi,
> > > I understood what you were trying to say. Here's what I;'m doing now:
>
> > > class ConnectionsListAddScreen extends Activity{
> > >        public void onCreate(Bundle savedInstState){
> > >             super.onCreate(savedInstState);
> > >             //here on particular button click
> > >             new ConnReqSenderAsyncTask().execute();
>
> > >        }
>
> > >        protectedDialogonCreateDialog(int id) {
> > >                Dialogdialog= newDialog(ConnectionsListAddScreen.this);
> > >                 switch(id){
> > >                         case Constants.LOGIN_DIALOG:    ProgressDialog pg 
> > > = new
> > > ProgressDialog(ConnectionsListAddScreen.this);
> > >                                                         
> > > pg.setMessage(//some string);
> > >                                                         
> > > pg.setCancelable(true);
> > >                                                        dialog= pg;
> > >                                                         break;
> > >                         default:        return super.onCreateDialog(id);
>
> > >                 }
> > >                 returndialog;
> > >         }
>
> > > }
>
> > > private class ConnReqSenderAsyncTask extends
> > > AsyncTask<Void,Void,Void>{
>
> > >         protected Void doInBackground(Void... params) {
> > >               //send request to server
> > >               return null;
> > >         }
>
> > >         protected void onPreExecute() {
> > >                 super.onPreExecute();
> > >                 showDialog(Constants.LOGIN_DIALOG);
> > >         }
>
> > >         protected void onPostExecute(Void result) {
> > >                 super.onPostExecute(result);
> > >                 dismissDialog(Constants.LOGIN_DIALOG);
> > >         }
>
> > > }
>
> > > If the above is right. Then the problem is onOrientationChangeit
> > > throws below exception:
>
> > > FATAL EXCEPTION: main
> > > java.lang.IllegalArgumentException: nodialogwith id 5 was ever shown
> > > via Activity#showDialog
> > > at android.app.Activity.missingDialog(Activity.java:2590)
> > > at android.app.Activity.dismissDialog(Activity.java:2575)
> > > at com.sap.explorer.view.ConnectionsListAddScreen
> > > $ConnReqSenderAsyncTask.onPostExecute(ConnectionsListAddScreen.java:
> > > 699)
> > > at com.sap.explorer.view.ConnectionsListAddScreen
> > > $ConnReqSenderAsyncTask.onPostExecute(ConnectionsListAddScreen.java:1)
> > > at android.os.AsyncTask.finish(AsyncTask.java:417)
> > > at android.os.AsyncTask.access$300(AsyncTask.java:127)
> > > at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:
> > > 429)
> > > at android.os.Handler.dispatchMessage(Handler.java:99)
> > > at android.os.Looper.loop(Looper.java:123)
> > > at android.app.ActivityThread.main(ActivityThread.java:4627)
> > > at java.lang.reflect.Method.invokeNative(Native Method)
> > > at java.lang.reflect.Method.invoke(Method.java:521)
> > > at com.android.internal.os.ZygoteInit
> > > $MethodAndArgsCaller.run(ZygoteInit.java:868)
> > > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
>
> > > Since we are using showDialog(...) and onCreateDialog(...) for
> > > ProgressDialog display, then shouldn't Android keep a reference of
> > > same onorientationchange. Can you let me know if there are any
> > > mistakes in my code or solution to my problem asap.
>
> > > On Jun 16, 4:02 pm, sahana uday <[email protected]> wrote:
>
> > > > Hi,
> > > > Yes I'm sending the request to server in onCreateDialog(), but its an
> > > > AsyncTask.
> > > > In onPreExecute() show theprogressdialogand onPostExecute() cancel
> > > > theprogressdialog.
>
> > > > Off late I have anotherissuein computing textview height, I have
> > > > posted thisissueon a separate thread also.
> > > > The issues is:
> > > >         How to compute TextView Height before its laid out on screen?
>
> > > >         I'm not aware how we can use getPaint().ascent() or descent()
> > > > method
> > > >         for computing height?
>
> > > >         Can you please provide an example
>
> > > > On Jun 6, 6:38 pm, Streets Of Boston <[email protected]> wrote:
>
> > > > > Are you sending a request to the server in the implementation of the
> > > > > 'onCreateDialog(...)' method? If so, this is not good. The 
> > > > > onCreateDialog is
> > > > > called by the OS when the hosting activity is recreated due to a 
> > > > > config
> > > > >changewhen adialogis shown using the showDialog method (i.e. an
> > > > > activity-manageddialog). This is perfectly normal behavior.
>
> > > > > Call 'showDialog' just *after *you send an (asynchronous) request to 
> > > > > the
> > > > > server and call 'dismissDialog' when the server returns a response. 
> > > > > Usually,
> > > > > do not code anything in the onCreateDialog except for building an
> > > > > AlertDialog object.- Hide quoted text -
>
> > - Show quoted text -
>
>

-- 
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

Reply via email to