问题:如何创建从DialogFragment到另一个Fragment的回调。就我而言,涉及的活动应该完全不知道DialogFragment。
考虑一下我
public class MyFragment extends Fragment implements OnClickListener
然后在某些时候我能做到
DialogFragment dialogFrag = MyDialogFragment.newInstance(this);dialogFrag.show(getFragmentManager, null);
MyDialogFragment的样子
protected OnClickListener listener;public static DialogFragment newInstance(OnClickListener listener) { DialogFragment fragment = new DialogFragment(); fragment.listener = listener; return fragment;}
但是,如果DialogFragment在其生命周期中暂停和恢复,则无法保证听众会出现。片段中唯一的保证是通过setArguments和getArguments通过Bundle传递的。
如果它应该是监听器,有一种方法可以引用该活动:
public Dialog onCreateDialog(Bundle bundle) { OnClickListener listener = (OnClickListener) getActivity(); .... return new AlertDialog.Builder(getActivity()) ........ .setAdapter(adapter, listener) .create();}
但我不希望活动监听事件,我需要一个片段。实际上,它可以是任何实现OnClickListener的Java对象。
考虑通过DialogFragment呈现AlertDialog的Fragment的具体示例。它有Yes / No按钮。如何将这些按钮发送回创建它的Fragment?
相关分类