私はDialogFragmentを使用して、同じフラグメントでフィルタリングして検索することができます。フィルタは、コールバックインタフェースを使用して、データをホスティングアクティビティ/フラグメントに戻すことによって機能します。私はテキストを入力し、検索をクリックしたとき、それは動作しますが、その後、次のexpceptionやクラッシュを投げるように私はDialogFragmentにSearchViewを追加するまで、これは偉大な仕事に見えた:コールバックを使用してDialogFragment(アンドロイド)のデータを返す
Parcelable encountered IOException writing serializable object (name = com.braden.android.fragments.ListItemFragment$6)
...
Caused by: java.io.NotSerializableException: com.braden.android.fragments.ListItemFragment
へコールバックを行う私は、かなり標準的なコールバックインターフェイスパターンを使用しました。インタフェースはSerializableを継承します。ここに私のコールバックのコードは次のとおりです。
1)なぜそれは私だけだということです。
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);
}
これはので、私は思ったんだけどSerializableを実装し、匿名の内部クラスを使用してとは何かを持っているようです私がSearchViewを使用しているときにこの例外を受け取り、コールバックを介してデータを返すアクションを実行したり、単にダイアログをクリックしたりしないでください。
2)ここに回避策がありますか、これはちょうど私にとって使いにくいパターンです。