Java 使用onActivityResult关闭返回活动的对话框片段

Java 使用onActivityResult关闭返回活动的对话框片段,java,android,android-fragments,android-activity,Java,Android,Android Fragments,Android Activity,我在关闭DialogFragment并返回活动的onActivityResult时遇到问题 Intent intent = new Intent(view.getContext(), PedidosFragment.class); intent.putExtra("cliente", ""); getActivity().startActivityForResult(intent, 5); @Override public

我在关闭DialogFragment并返回活动的onActivityResult时遇到问题

            Intent intent = new Intent(view.getContext(), PedidosFragment.class);
            intent.putExtra("cliente", "");
            getActivity().startActivityForResult(intent, 5);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (data != null) {
        if (requestCode == 5) {

    }   
}
下面是我调用DialogFragment的代码

            Bundle args = new Bundle();
            args.putString("cliente", hashtableFiltros.get("cliente"));
            args.putString("produto", hashtableFiltros.get("produto"));
            args.putString("dataInicio", hashtableFiltros.get("dataInicio"));
            args.putString("dataFim", hashtableFiltros.get("dataFim"));
            args.putInt("valorMin", Integer.parseInt(hashtableFiltros.get("valorMin")));
            args.putInt("valorMax", Integer.parseInt(hashtableFiltros.get("valorMax")));
            android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
            FiltroPedidos dialogFragment = new FiltroPedidos();
            dialogFragment.setArguments(args);
            dialogFragment.show(fm, "FiltroPedidos");
在单击DialogFragment的PositiveButton之后,它将必须返回requestCode并返回到活动

            Intent intent = new Intent(view.getContext(), PedidosFragment.class);
            intent.putExtra("cliente", "");
            getActivity().startActivityForResult(intent, 5);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (data != null) {
        if (requestCode == 5) {

    }   
}
返回到此处是活动中的onActivityResult

            Intent intent = new Intent(view.getContext(), PedidosFragment.class);
            intent.putExtra("cliente", "");
            getActivity().startActivityForResult(intent, 5);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (data != null) {
        if (requestCode == 5) {

    }   
}

有什么不对劲吗?因为它会关闭对话框片段,但不会进入onActivityResult。

请用英语书写Wellcome Leonardo!我会说西班牙语,但我想我明白你的意思。使用startActivityForResult(intent,5)启动result的活动时,您没有设置要打开的活动。当希望从活动A转到B,并期望从B得到结果时,使用“结果的活动”。如果希望从对话框中获取数据,则不希望使用StartActivityForresultsBasira,我尝试启动intent,但效果不一样。如果希望在活动及其片段(也是对话框片段)之间进行通信您应该在活动中定义一个接口,并在片段中实现该接口,看看这个简单的示例: