我怎样才能从这段代码中的这个对话框片段中取回数据?

How can i get data back from this dialog fragment in this code?

我已经尝试过了,但是没有用。让我展示更多细节好​​吗?

我有这个 activity:

主要活动

xTipo.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        new ListTipo().show(getSupportFragmentManager(),"ListTipo");
    }
});

我的 DialogFragment

有这个 java 代码

对话框片段:

public class ListTipo extends DialogFragment {
    
        @NonNull
        @Override
        public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) 
         {
    
            int style = DialogFragment.STYLE_NORMAL, theme = 0;
            theme = R.style.dTheme;
            setStyle(style, theme);
            String [] tipos = getActivity().getResources().getStringArray(R.array.tipo_atendimento);
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), theme);
            builder.setTitle("\b\b\bTipo de Atendimento");
            builder.setItems(tipos, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
            }
        });
        return builder.create();
    }
}

这项工作很好,但我无法获取结果。 感谢您的耐心等待!

创建一个回调接口,在您的代码中实现它(在您设置侦听器的地方),然后将其作为参数传递到对话框中。

示例:

public interface Callback {
    void onResult(Object result);
}
private Callback callback;
public ListTipo(Callback callback) {
    this.callback=callback;
}

// where you want to pass the result
callback.onResult(YOUR_RESULT);

创建对话框的位置:

xTipo.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        new ListTipo(result -> {
            // run your code with result
        }).show(getSupportFragmentManager(),"ListTipo");
    }
});