我在toggleButtons
中有以下一组adapter
(绿色的一组被选中,其他的未被选中):
我试图找到一种解决方案,不要在所有toggleButtons中都这样做:
holder.eleven.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked == true){
holder.eleven.setTextColor(Color.WHITE)
} else {
holder.eleven.setTextColor(Color.BLACK)
}
}
我想有一个if / else语句,它将为所有
toggleButtons
做以前的工作(设置文本颜色)。我试图指定一个数组在循环中运行,但不起作用:
val array = arrayOf(R.id.one,
R.id.two,
R.id.three,
R.id.four,
R.id.five,
R.id.six,
R.id.seven,
R.id.eight,
R.id.nine,
R.id.ten,
R.id.eleven)
for (i in array.indices) {
array[i].setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
array[i].setTextColor(Color.WHITE)
} else {
array[i].setTextColor(Color.BLACK)
}
}
}
你知道我该怎么做吗?谢谢。
最佳答案
您的数组应为:
val array = arrayOf(
holder.one, holder.two, holder.three, holder.four, holder.five, holder.six,
holder.seven, holder.eight, holder.nine, holder.ten, holder.eleven)
接着:
for (i in array.indices) {
array[i].setOnCheckedChangeListener { _, isChecked ->
array[i].setTextColor(if (isChecked) Color.WHITE else Color.BLACK)
}
}
要么:
array.forEach {
it.setOnCheckedChangeListener { v, isChecked ->
v.setTextColor(if (isChecked) Color.WHITE else Color.BLACK)
}
}