如何通过编程创建的ID获取视图



视图在代码中动态创建:

val textView = TextView(context).apply {
setTextColor(Color.BLACK)
setPadding(5,20,5,0)
text = label
id = lblID
}

linearLayout.addView(textView)

在某个时刻,我需要通过片段中的ID来获得这个视图。

在片段中,我使用绑定来访问XML:中定义的静态视图

private var _binding: FragmentDataBinding? = null
private val binding get() = _binding!!  

但是,我不知道如何访问id动态创建的视图。

我如何以编程方式访问在上面的示例中通过ID动态创建的视图?

要在代码中设置视图的id,要像在xml中那样维护id,请首先创建一个名为ids.xml-res->值->ids.xml具有以下内容,如果您想要,您可以在这里有多个id

<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="myTextView" type="id"/>
</resources>

现在你可以做:

val textView = TextView(context).apply {
setTextColor(Color.BLACK)
setPadding(5,20,5,0)
text = label
id = R.id.myTextView
}
linearLayout.addView(textView)

要访问视图,您只需再次使用相同的id:

val tv = linearLayout.findViewById<TextView>(R.id.myTextView)

最新更新