android – 从片段对话框获取数据 – 最佳做法?

我正在转换我的一些项目来使用片段.我们如何与片段对话沟通?我想创建一个片段对话框,只是为了从用户那里获取一些文本输入.当对话框被关闭时,我想将输入的文本传回“父”片段(启动它).例:

public class MyFragment extends Fragment {

    public void onBtnClick() {
        // What's a good way to get data back from this dialog 
        // once it's dismissed?
        DialogFragment dlgFrag = MyFragmentDialog.newInstance();
        dlgFrag.show(getFragmentManager(), "dialog"); 
    }
}

谢谢

传递这种事件的好方法是回调界面,如“Android开发人员指南”中所描述的

您的片段定义回调接口,如

public class MyFragment extends Fragment {
    ...
    // Container Activity must implement this interface
    public interface OnArticleSelectedListener {
        public void onArticleSelected(Uri articleUri);
    }
    ...
}

然后,如果父实现回调接口并保存实例,则检查您的onAttach方法.

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        mListener = (OnArticleSelectedListener) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
    }
}

当您的片段内的事件发生时,您只需调用回调处理程序

mListener.onArticleSelected(...);

希望有帮助,进一步的信息here

http://stackoverflow.com/questions/9776088/get-data-back-from-a-fragment-dialog-best-practices

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:android – 从片段对话框获取数据 – 最佳做法?