Reputation: 133
I am trying to setup an interface between my fragment and activity but, I keep getting this error.
java.lang.NullPointerException: Attempt to invoke interface method 'void rangers.socman.FragmentChanger.doubleFrag()' on a null object reference
at rangers.socman.BattleRhythmFrag.onClick(BattleRhythmFrag.java:144)
Idk why it is doing this I:
1. Created an interface and made a method to use.
2. Implemented the interface in my main activity.
3. Used it in my fragment
I am following some code I did for an app development class and it does not work. Been struggling for days just to get a button in a fragment to launch another fragment. I'm very frustrated.
Interface Code
package rangers.socman;
public interface FragmentChanger {
void doubleFrag();
}
Activity Code
@Override
public void doubleFrag() {
}
Fragment Code
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.newBattle:
{
//prvate FragmentChanger fragChange
fragChange.doubleFrag();
}
case R.id.editBattle:
{
}
case R.id.deleteBattle:
{
}
break;
default:
{
}
}
Upvotes: 0
Views: 39
Reputation: 974
You should use context from onAttach in your fragment. That context is an activity instance and you should check it with:
private FragmentChanger fragmentChanger;
public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof FragmentChanger) {
fragmentChanger = (FragmentChanger) context;
}
}
...
void onClick {
fragmentChanger.doubleFrag();
}
Upvotes: 1