Call it after the requestFeature() calls.

But for an alert dialog, you probably want to animate the window itself not
the contents inside.  You do this by setting a style resource on the
WindowManager.LayoutParams.windowAnimation.

On Mon, Jan 19, 2009 at 9:06 AM, Tom Medhurst
<[email protected]>wrote:

>
> So any ideas how I can call: getDecorView() without getting the error:
> "AndroidRuntimeException: requestFeature() must be called before
> adding content" ...?
>
> On Jan 12, 8:39 pm, Tom Medhurst <[email protected]> wrote:
> > I have an AlertDialog box instance I created from AlertDialog.Builder
> > and I want to animate it with a anim/appear1.xml file I created
> > earlier.
> >
> > Normally I would initialize the animation using
> > AnimationUtils.loadAnimation, but I am having a problem applying this
> > animation to the AlertDialog.
> >
> > To get the View of the dialog I call alertDialogInstance.getWindow
> > ().getDecorView().setAnimation(...)
> > However this throws an exception:
> >
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):
> > android.util.AndroidRuntimeException: requestFeature() must be called
> > before adding content
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > com.android.internal.policy.impl.PhoneWindow.requestFeature
> > (PhoneWindow.java:199)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > com.android.internal.app.AlertController.installContent
> > (AlertController.java:166)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.AlertDialog.onCreate(AlertDialog.java:146)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.Dialog.dispatchOnCreate(Dialog.java:268)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.Dialog.show(Dialog.java:207)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > tommed.lastFMForAndroid.MusicPlayerActivity.startStreaming
> > (MusicPlayerActivity.java:393)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > tommed.lastFMForAndroid.MusicPlayerActivity.setSongInfo
> > (MusicPlayerActivity.java:317)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > tommed.lastFMForAndroid.MusicPlayerActivity.onCreate
> > (MusicPlayerActivity.java:239)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> > 1122)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> > 2103)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> > 2156)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.ActivityThread.access$1800(ActivityThread.java:112)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1580)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.os.Handler.dispatchMessage(Handler.java:88)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.os.Looper.loop(Looper.java:123)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > android.app.ActivityThread.main(ActivityThread.java:3742)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > java.lang.reflect.Method.invokeNative(Native Method)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > java.lang.reflect.Method.invoke(Method.java:515)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> > (ZygoteInit.java:739)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
> > 01-12 20:30:46.976: ERROR/mediaPlayer(555):     at
> > dalvik.system.NativeStart.main(Native Method)
> >
> > I had a read of the documentation and I tried the following which
> > didn't make any difference:
> > Window dialogWindow = mBufferDialog.getWindow();
> > dialogWindow.requestFeature
> > (WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
> > dialogWindow.requestFeature
> > (WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
> > dialogWindow.getDecorView().setAnimation(AnimationUtils.loadAnimation
> > (this, R.anim.expand_in));
> >
> > Anyone got any ideas what I am missing?
> > Thanks
> > Tom
> >
>


-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them.

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