android - 将数据从 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"));
解决方案
您的收货地点是
onCreate(){
getArguments
}
NetworkErrorDialogFragment?
推荐阅读
- laravel - 如何避免 laravel 验证中的重复值?
- java - Mirth Connect 使用 mdth 库获取遭遇详情
- docker - 如何通过谷歌函数在谷歌容器注册表中运行 docker 容器?
- javascript - Web 应用程序输入类型文件在 WebView 中不起作用
- python-3.x - 使用 pandas 和 matplotlib 绘制带有条形图的子组标签
- javascript - JQGrid - 在没有本地数据的情况下管理分页和列过滤(loadonce = false)
- javascript - 在 Laravel 中实现可嵌入的自定义徽章
- javascript - 如何在本机反应中记录每次更新的动画值?
- django - 如何在 django 布尔字段上应用条件?
- redirect - 将子域页面重定向到主域页面