将 TextInputLayout 或 Activity 中的任何 UI 组件传递给 DialogFragment

Pass TextInputLayout or any UI components from Activity to DialogFragment

我有一个注册 activity 和一个对话片段。每次我在注册 activity 中按下按钮时,都会出现一个带有按钮的对话框片段,按下按钮时会调用 Web 服务。我想做的是,我想从注册 activity 中获取 TextInputLayout 到我的对话框片段,因为如果在我想使用 setError() 的字段之一中出现 Web 服务错误显示该错误。我已经尝试使用 LayoutInfater 来膨胀视图,当我 运行 代码时我没有收到任何错误,但我也没有在我的 TextInputLayout 中看到内联错误。

LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.activity_register, null);

可能吗?任何帮助将不胜感激。

您应该永远不要将一个 activity/fragment 的视图传递给另一个 activities/fragments!
在你的情况下,最好使用一种机制将 API 调用的结果从你的对话片段传递到 activity。在这种情况下,有多种方法;一种是在对话框和 activity 之间使用 SharedViewModel。另一种是使用 FragmentResult API 将 API 调用的结果传递给 activity.
您可以阅读有关如何实施这些 here

的更多信息