Not sure what's wrong with my observer pattern:
I have defined my interface as:
public interface OnBackFilterPressListener {
public ArrayList<FoodType> filterFoodType ();
}
When I press the back button, I want the listener to be activated - all this code is in my activity class:
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackFilterPressListener.filterFoodType();
}
}
In my adapter class, I have the following code:
public class RandomRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements SearchActivity.OnBackFilterPressListener {
@Override
public ArrayList<FoodType> filterFoodType() {
return foodTypes;
}
}
When I press the back button in my activity, I just want the array of data in my adapter to be returned in my activity class.
But I'm getting this error:
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.ArrayList com.example.simon..SearchActivity$OnBackFilterPressListener.filterFoodType()' on a null object reference
foodType definitely exists - the adapter loads the data into activity and I can see it being displayed on the android emulator. I get this error when I click the back button.