Я пытаюсь показать диалоговое окно, когда получаю сообщение об ошибке залпа и говорю пользователю повторить попытку, поэтому я выбираю 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();
}
На самом деле я могу показывать только тост сообщения по типу ошибки.
С помощью следующего я пытаюсь передать сообщение в качестве аргумента, но, похоже, он не работает.
Bundle args = new Bundle();
args.putString("vErr", "vErr");
DialogFragment errFragment = new NetworkErrorDialogFragment();
errFragment.setArguments(args);
errFragment.show(getFragmentManager(), "NetErrDialogFragment");
Edit:
Получение значения:
В onCreateView диалогового окна:
errorTextView.setText(getArguments().getString("vErr"));