Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在DialogFragment';简历_Android_Dialogfragment - Fatal编程技术网

Android 在DialogFragment';简历

Android 在DialogFragment';简历,android,dialogfragment,Android,Dialogfragment,在我的DialogFragment中,我只做: override fun onResume() { super.onResume() dismissDialog() getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, DimenUtil.dpToPx(220f, resources)); getDialog().getWindow().

在我的DialogFragment中,我只做:

    override fun onResume() {
        super.onResume()
        dismissDialog()
        getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, DimenUtil.dpToPx(220f, resources));
        getDialog().getWindow().setGravity(Gravity.BOTTOM)
        getDialog().setCanceledOnTouchOutside(false)
    }
但我得到了NPE:

Unable to resume activity {PublishActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Dialog.getWindow()' on a null object reference
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3308)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3344)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5773)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:799)

在我的活动中,我启动了一个DialogFragment并得到了这个错误。这种情况会发生几次。

您应该对照
getDialog()
进行检查。如果不为空,您应该将代码复制到
onViewCreated/onCreate
以应用
LayoutParameters
,只要对照
NPE
进行检查,您就可以将代码保存在
Resume

    if(getDialog() !=null){
        dismissDialog()
        getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, DimenUtil.dpToPx(220f, resources));
        getDialog().getWindow().setGravity(Gravity.BOTTOM)
        getDialog().setCanceledOnTouchOutside(false)
    }

我只是不知道为什么getDialog()返回null在
dismissDialog()方法中到底发生了什么?如果您实际上正在那里调用
disclesh()
,那么
getDialog()
可能会在这之后返回
null