NullPointerException after calling activity method from fragment

So today I decided to updat a lot of deprecated libraries that I was using on my app. I was also adding new classes using koltin instead of java, because I plan to migrate to it soon.

One of the libraries I had to remove was

implementation "androidx.lifecycle:lifecycle-extensions:${versions.lifecycleExtensions}"

and I replaced it with

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${versions.lifecycle}"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:${versions.lifecycle}"

After changing all the instances of my viewmodels, a new problem was showing, and I read that I had to add the new Fragment library:

implementation "androidx.fragment:fragment-ktx:$fragment_version"

With this library I started running with a new problem that I haven't been able to solve yet. I have one activity and multiple fragments (Jetpack). I had one method on my activity:

FloatingActionButton fab;

public void showFab() {
   fab.show();
}

and on my child fragment:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    
        // some code
        ((MyActivity) getActivity()).showFab();

        return view;
    }

The problem is that now, for some reason, my fab variable (and all other activity's local variables) are set to null, and this leads to the NullPointerException that I'm facing.

I also tried changing my approach, and use an interface to communicate those two instead, but the onAttachFragment method is deprecated and don't know which method should I use.

My app was running and working just fine before all of these libraries changes.

What am I missing here?

Thanks!



Read more here: https://stackoverflow.com/questions/67015366/nullpointerexception-after-calling-activity-method-from-fragment

Content Attribution

This content was originally published by Juan Carlos Durini at Recent Questions - Stack Overflow, and is syndicated here via their RSS feed. You can read the original post over there.

%d bloggers like this: