I have a DialogFragment that allows users to filter and search in the same Fragment. The filter works by passing back data to the hosting activity/fragment using a callback interface. This seemed to work great until I added a SearchView to the DialogFragment as when I enter text and click search it works but then throws the following expception and crashes:
Parcelable encountered IOException writing serializable object (name = com.braden.android.fragments.ListItemFragment$6)
...
Caused by: java.io.NotSerializableException: com.braden.android.fragments.ListItemFragment
To do the callback I used a fairly standard callback interface pattern. The interface extends Serializable. Here's the code for my callback:
private void displayFilter() {
    FilterCategoryDialogFragment filterCategoryDialogFragment = new FilterCategoryDialogFragment();
    Bundle bundle = new Bundle();
    mOnFilterClickListener = new OnFilterClickListener() {
        @Override
        public void onCategoryClickListener(String filterName) {
            updateVenues(mFilter);
        }
    };
bundle.putSerializable("listenerFilter", 
mOnFilterClickListener);
filterCategoryDialogFragment.setArguments(bundle);
    filterCategoryDialogFragment.show(getFragmentManager(), DIALOG_CATEGORY_FILTER);
}
This seems to have something to do with using an anonymous inner class that implements serializable so I'm wondering:
1) Why is it that I'm only receiving this exception when I use SearchView and not when I perform an action to send back data via callback or simply click out of the dialog.
2) Is there a workaround here or is this just a bad pattern for me to use.
 
    