Hi,
I found an Android issue on AlertDialog when you use it with androidView property. If your androidView contains border properties, you get this Android exception :
01-22 18:01:09.252: W/TiUIDialog(19514): (main) [5163,13353] Context must have gone away: requestFeature() must be called before adding content 01-22 18:01:09.252: W/TiUIDialog(19514): android.util.AndroidRuntimeException: requestFeature() must be called before adding content 01-22 18:01:09.252: W/TiUIDialog(19514): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:215) 01-22 18:01:09.252: W/TiUIDialog(19514): at com.android.internal.app.AlertController.installContent(AlertController.java:234) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.app.AlertDialog.onCreate(AlertDialog.java:336) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.app.Dialog.dispatchOnCreate(Dialog.java:351) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.app.Dialog.show(Dialog.java:256) 01-22 18:01:09.252: W/TiUIDialog(19514): at ti.modules.titanium.ui.widget.TiUIDialog.show(TiUIDialog.java:292) 01-22 18:01:09.252: W/TiUIDialog(19514): at ti.modules.titanium.ui.AlertDialogProxy$1.run(AlertDialogProxy.java:73) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.os.Handler.handleCallback(Handler.java:615) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.os.Handler.dispatchMessage(Handler.java:92) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.os.Looper.loop(Looper.java:137) 01-22 18:01:09.252: W/TiUIDialog(19514): at android.app.ActivityThread.main(ActivityThread.java:4745) 01-22 18:01:09.252: W/TiUIDialog(19514): at java.lang.reflect.Method.invokeNative(Native Method) 01-22 18:01:09.252: W/TiUIDialog(19514): at java.lang.reflect.Method.invoke(Method.java:511) 01-22 18:01:09.252: W/TiUIDialog(19514): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 01-22 18:01:09.252: W/TiUIDialog(19514): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 01-22 18:01:09.252: W/TiUIDialog(19514): at dalvik.system.NativeStart.main(Native Method)Here is a working code:
var win1 = Titanium.UI.createWindow({ backgroundColor:'#fff' }); var popover = Ti.UI.createAlertDialog({ androidView : Titanium.UI.createView({ }) }); win1.addEventListener('click', function(e) { popover.show(); }); win1.open();The androidView created is really simple, but you can add others properties (except border properties), it works.
Here is a non-working code:
var win1 = Titanium.UI.createWindow({ backgroundColor:'#fff' }); var popover = Ti.UI.createAlertDialog({ androidView : Titanium.UI.createView({ borderColor: 'black' }) }); win1.addEventListener('click', function(e) { popover.show(); }); win1.open();More infos on the issue
Application type: mobile
Titanium SDK: 3.0.0.GA
Platform & version: Android 4.1.1 and 4.0.x
Device: Android device (Asus Transformer Prime)
Titanium Studio: 3.0.1.201212181159
Thanks, Florent.