首页 > 解决方案 > 将数据从 Fragment 传递到 DialogFragment

问题描述

当我收到 Volley 错误并告诉用户重试时,我试图显示一个对话框,因此我选择了一个 dialogFragment 以便能够对其进行自定义。

我在 Fragment 类中处理错误如下:

if (vError instanceof TimeoutError || vError instanceof NoConnectionError) {
                    Toast.makeText(getContext(),
                            Objects.requireNonNull(getActivity()).getString(R.string.error_network_timeout),
                            Toast.LENGTH_LONG).show();
                } else if (vError instanceof AuthFailureError) {
                    Toast.makeText(getContext(),
                            Objects.requireNonNull(getContext()).getString(R.string.error_network_auth_error),
                            Toast.LENGTH_LONG).show();
                } else if (vError instanceof ServerError) {
                    Toast.makeText(getContext(),
                            Objects.requireNonNull(getContext()).getString(R.string.error_network_server_error),
                            Toast.LENGTH_LONG).show();
                } else if (vError instanceof NetworkError) {
                    Toast.makeText(getContext(),
                            Objects.requireNonNull(getContext()).getString(R.string.error_network_network_error),
                            Toast.LENGTH_LONG).show();
                } else if (vError instanceof ParseError) {
                    Toast.makeText(getContext(),
                            Objects.requireNonNull(getContext()).getString(R.string.error_network_parse_faillure),
                            Toast.LENGTH_LONG).show();
                }

实际上,我只能显示每种错误类型的 Toast 消息。

使用以下内容,我试图将消息作为参数传递,但似乎不起作用。

Bundle args = new Bundle();
args.putString("vErr", "vErr");
DialogFragment errFragment = new NetworkErrorDialogFragment();
errFragment.setArguments(args);
errFragment.show(getFragmentManager(), "NetErrDialogFragment");

编辑:检索值:

在 dialogFragment 的 onCreateView 中:

errorTextView.setText(getArguments().getString("vErr"));

标签: androidandroid-fragmentsbundleandroid-alertdialog

解决方案


您的收货地点是

 onCreate(){
 getArguments
}

NetworkErrorDialogFragment?


推荐阅读