1

DialogFragment には、次のようなコールバックを使用するリスナーがあります。

OnDoneListener caller = (OnDoneListener)getActivity(); 
caller.done();   

ただし、FragmentActivity で OnDoneListener を実装する代わりに、Fragment で実装したいと考えています。したがって、私は次のようなものを探しています:

OnDoneListener caller = (OnDoneListener)getFragmentManager().getFragment(); //made up

findFragmentById() または findFragmentByTag() を見つけましたが、もっと一般的なものにしたい... または、ID またはタグを取得するにはどうすればよいですか? コンテナまたは親から取得できますか?

編集: それを明確にするためだけに。私の DialogFragment は、可能な限り再利用可能にする必要があります。したがって、ハードコードされた ID と TAG は必要ありません。OnDoneListener を実装する必要がある親 (呼び出し側) Fragment を参照したいだけです。

4

1 に答える 1

3

私は自分で解決策を見つけました:

呼び出し元フラグメント:

mCalledFragment = new CalledFragment();
mCalledFragment.setTargetFragment(this, 0);

呼び出されたフラグメント:

CallerFragment caller = (CallerFragment)getTargetFragment();
caller.callback();
于 2012-07-19T18:52:36.403 に答える