0

I have an activity with a button and when I pressed the button a fragment with circular loader will open.But after giving a time of 10sec the loader is still showing and does'nt becomes invisible.

Here is my code:-

Main_Activity.java

loader_fragment=(Fragment) getFragmentManager().findFragmentById(R.id
                .loader_fragment);

  loader=loader_fragment.getActivity().findViewById(R.id.loder_login);

        handler=new Handler();
        runnable=new Runnable() {
            @Override
            public void run(
                loader.setVisibility(View.INVISIBLE);
                timer.cancel();

            }
    };
    timer=new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(runnable);

        }
    }, 10000,1000);

Fragment.java

package com.example.user.attendance;

import android.app.Fragment;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Loader_fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View loadder_fragment=inflater.inflate(R.layout.fragment_loader_fragment, container, false);

        return loadder_fragment;
    }


}

Logcat:

04-22 14:39:12.503 6270-6270/com.example.user.attendance E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.user.attendance, PID: 6270
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.attendance/com.example.user.attendance.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Activity android.app.Fragment.getActivity()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Activity android.app.Fragment.getActivity()' on a null object reference
        at com.example.user.attendance.MainActivity.onCreate(MainActivity.java:169)
        at android.app.Activity.performCreate(Activity.java:6679)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6119) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

By default the loader is Visible.Can any tell me why I am getting NullPointerException.

  • 1
    Possible duplicate of [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – ADM Apr 22 '18 at 09:34
  • The loader and the Fragment is not in the same context I guess. – Reaz Murshed Apr 22 '18 at 09:55

1 Answers1

0

getFragmentManager() returns null because you haven't add the fragment into FragmentManager. First of all you should create an instance of Loader_fragment, then add it to FragmentManager like in the following code snippet:

getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, loader_fragment).commit();
Kulebin
  • 246
  • 1
  • 8