视图在代码中动态创建:
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)