return 视图绑定中的 findViewById()

return findViewById() in viewbinding

我正在尝试优化旧代码。我正在尝试用视图绑定替换 findviewbyid。 但是如何 return viewbinding id 而不是 findviewbyid?

private TextView getTextView(int id){
        return (TextView) findViewById(id);
}

这是旧代码。但我想应用视图绑定。我希望它像这样工作。因为我不知道该怎么做。

private TextView getTextView(int id){
        return sampleViewBinding(id);
}

我怎样才能做到这一点?

View Binding 的全部意义在于避免 findViewById() 调用。它会自动为您完成。您正在尝试做的是像 findViewById() 一样处理视图绑定。每当您需要访问任何视图时,您所要做的就是调用生成的绑定 class 并在驼峰式大小写中使用您的 id。例如,main_layout.xml 将有一个由名称 MainLayoutBinding 生成的 class,因此您将通过调用 MainLayoutBinding 的实例和您要访问的 ID。

如果您的布局文件名为 fragment_dashboard.xml 并且在一个带有 Id userNameTvId 的文本视图中,那么您通常不使用数据绑定来执行此操作:

val view = inflater.inflate(R.layout.fragment_dashboard, container, false)
val textview = view.findViewById(R.id.userNameTvId)

但对于 viewBinding,它是通过链接完成的。通过绑定对象可以接受此文本视图。上面将使用 viewBinding:

重写
val binding = FragmentDashboardBinding.inflate(inflater)
binding.userNameTvId

// to pass a value you can just do
binding.userNameTvId = "SomeOne"

val view = binding.root