猿问

从DialogFragment回调片段

问题:如何创建从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?


手掌心
浏览 611回答 3
3回答
随时随地看视频慕课网APP

相关分类

Android
我要回答