4
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) 

this Exception i am getting when i try to dismiss custom dialog in 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;
    }

}

this is my class for custom dialog .

i am showing dialog using this code: CustomDialog.newInstance().show(getSupportFragmentManager(),"Dialog"); working fine displaying dialog

and try to dismiss using CustomDialog.newInstance().dismiss(); this code but here i am getting Exception please tell me where am doing wrong how to dismiss give dialog.

Shubham Khatri
  • 270,417
  • 55
  • 406
  • 400
Maklee Lee
  • 263
  • 5
  • 14
  • Your problem is not with the dialog (from what I can tell) but is with `WelcomeActivity` instead. You are calling `beginTransaction()` on an object that has not yet been initialized. – TheAnonymous010 Jan 10 '17 at 05:07
  • Possible duplicate of [What is a NullPointerException, and how do I fix it?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – TheAnonymous010 Jan 10 '17 at 05:08
  • CustomDialog.newInstance().show(getSupportFragmentManager(),"Dialog"); am calling this in on Preexcute of Asynk task am able to display dialog but when i try to CustomDialog.newInstance().dismiss(); then am getting Exception – Maklee Lee Jan 10 '17 at 05:08

3 Answers3

4

newInstance will give you a new reference every time

Initialise your dialog like

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

To dismiss use

customDialog.dismiss();
Shubham Khatri
  • 270,417
  • 55
  • 406
  • 400
1

Problem is caused by :

CustomDialog.newInstance().dismiss();

because using two instance of Fragment first to show Dialog another is to dismiss it.

Use same instance of Fragment which is return by

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

Dismiss as:

dialogFrag.dismiss();
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
0

it seems like you are calling newInstance() again for dismissing which returns a new instance of your dialog.Try to use same instance which you have shown already,for dismissal too.

Anu07
  • 1
  • 1