空对象引用上的 android.support.v4.app.FragmentManager.beginTransaction()'

标签 android

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: websters.smartindiaserviceapp, PID: 3320
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{websters.smartindiaserviceapp/websters.smartindiaserviceapp.Activities.WelcomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                      at android.app.ActivityThread.-wrap11(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5417)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                   Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference
                      at android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java:200)
                      at android.support.v4.app.DialogFragment.dismiss(DialogFragment.java:171)
                      at websters.smartindiaserviceapp.Activities.WelcomeActivity.onCreate(WelcomeActivity.java:51)
                      at android.app.Activity.performCreate(Activity.java:6237)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5417) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

当我尝试关闭 actvtiy 中的自定义对话框时出现此异常

public class CustomDialog extends DialogFragment {

   public static CustomDialog newInstance() {
        return new CustomDialog();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.dialog, container, false);
        Glide.with(this).load(R.drawable.loader).placeholder(R.drawable.loader)
                //.dontAnimate()
                .into((ImageView) v.findViewById(R.id.progress));
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

        if (getDialog() == null)
            super.setShowsDialog (false);
        return v;
    }

}

这是我的自定义对话框类。

我正在使用这段代码显示对话框: CustomDialog.newInstance().show(getSupportFragmentManager(),"Dialog"); 正常显示对话框

并尝试解雇 使用 CustomDialog.newInstance().dismiss(); 这段代码,但我在这里遇到异常请告诉我哪里做错了如何关闭对话框。

最佳答案

newInstance 每次都会给你一个新的引用

像这样初始化你的对话框

CustomDialog customDialog = CustomDialog.newInstance(); 
customDialog.show(getSupportFragmentManager(),"Dialog");

拒绝使用

customDialog.dismiss();

关于空对象引用上的 android.support.v4.app.FragmentManager.beginTransaction()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41561443/

相关文章:

android - 获取具有 lookupUri 的联系人的所有电话号码

java - Android 未启动其他 Activity

android - Android设备ID长度应该是多少

android - 如何实时更新 ListView Firebase - Android

android - 如何在android应用程序中自动填充编辑文本?

java - 无法观察空数据 - 带有 Livedata 的 MVVM

android - 从 Android 连接到 Dynamics CRM 2016(On-Premise)

android - 如何在 Flutter 中将用户输入数据从一个页面传递到另一个页面?

java - 使用 FragmentManager 和 FragmentTransaction 将 Map Fragment 动态添加到 Activity 中

android - setDrawerLockMode 在 android 中不起作用?