Dialog throwing "Unable to add window — token null is not for an application” with getApplication() as context

前端 未结 28 1376
死守一世寂寞
死守一世寂寞 2020-11-22 08:42

My Activity is trying to create an AlertDialog which requires a Context as a parameter. This works as expected if I use:

AlertDialog.Builder builder = new Al         


        
28条回答
  •  名媛妹妹
    2020-11-22 08:54

    Little hack: you can prevent destroying your activity by GC (you should not do it, but it can help in some situations. Don't forget to set contextForDialog to null when it's no longer needed):

    public class PostActivity extends Activity  {
        ...
        private Context contextForDialog = null;
        ...
        public void onCreate(Bundle savedInstanceState) {
            ...
            contextForDialog = this;
        }
        ...
        private void showAnimatedDialog() {
            mSpinner = new Dialog(contextForDialog);
            mSpinner.setContentView(new MySpinner(contextForDialog));
            mSpinner.show();
        }
        ...
    }
    

提交回复
热议问题