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.
 
    