當UI畫面中很多[同類型][同用途]的元件要控制時,一般方式都只能建立一大排物件變數再使用,如圖:
如果要控制這些TextView
的話,我們就要建立7個TextView
物件。
private lateinit var tvConnect1: TextView private lateinit var tvConnect2: TextView private lateinit var tvConnect3: TextView private lateinit var tvConnect4: TextView private lateinit var tvConnect5: TextView private lateinit var tvConnect6: TextView private lateinit var tvConnect7: TextView //然後綁定ID tvConnect1 = findViewById(R.id.tvConnect1) tvConnect2 = findViewById(R.id.tvConnect2) tvConnect3 = findViewById(R.id.tvConnect3) tvConnect4 = findViewById(R.id.tvConnect4) tvConnect5 = findViewById(R.id.tvConnect5) tvConnect6 = findViewById(R.id.tvConnect6) tvConnect7 = findViewById(R.id.tvConnect7) tvConnect1.text = "連線1" tvConnect2.text = "連線2" ...
如果使用陣列來存放TextView
的話,使用起來就會方便很多:
建立一個TextView
陣列。
private val tvConnect = ArrayList<TextView>()
然後再建立一個存放元件ID的陣列(R.id.xxxxx),他是Int整數的形式。
並且預先將ID都存放進陣列中。
private val tvConnectIds = arrayOf(R.id.tv_test9_status_connect1, R.id.tv_test9_status_connect2 , R.id.tv_test9_status_connect3, R.id.tv_test9_status_connect4, R.id.tv_test9_status_connect5 , R.id.tv_test9_status_connect6, R.id.tv_test9_status_connect7)
最後再利用迴圈把TextView
跟ID串聯起來。
for(i in 0..6){ tvConnect.add(findViewById(tvConnectIds[i])) }
然後就可以以一般陣列的方式使用了。
tvConnect[n].text = "修改第N個TextView文字"
當然其他種元件也可以用同樣方法來達成喔!
元件綁陣列的小技巧就到這邊了!
-END-
發佈留言