Kotlin 微调器和切换按钮的中性状态
这是我的迪莱玛: 我有一个使用切换按钮(A00)的活动,代码如下。创建活动时,不会调用函数sendCommand(我必须选中并取消选中uncheck命令)。这就像切换按钮在创建时处于中性状态一样Kotlin 微调器和切换按钮的中性状态,kotlin,Kotlin,这是我的迪莱玛: 我有一个使用切换按钮(A00)的活动,代码如下。创建活动时,不会调用函数sendCommand(我必须选中并取消选中uncheck命令)。这就像切换按钮在创建时处于中性状态一样 A00.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { sendCommand("1050000") A00.setBackgroundColor(Color.rgb(248, 25
A00.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
sendCommand("1050000")
A00.setBackgroundColor(Color.rgb(248, 250, 237))
A00.setTextColor(Color.rgb(96, 96, 96))
} else {
sendCommand("0050000")
A00.setBackgroundColor(Color.rgb(96, 96, 96))
A00.setTextColor(Color.rgb(248, 250, 237)) }
}
然后我有另一个使用旋转器的活动。创建活动后,微调器将从位置0开始,该位置将运行函数send命令,而不执行任何操作
我需要微调器表现得像切换按钮,有点像“中性状态”
创建活动时,Send命令无法运行。
谢谢
SC19.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖未选择的乐趣(父项:AdapterView?{}
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
val selectedItem=查看为文本视图
如果(位置==0){sendCommand(“0000219”)}
如果(位置==1){sendCommand(“1000219”)
选择editem.setTextColor(Color.parseColor(“#f8faed”))
选择editem.setBackgroundColor(Color.parseColor(“#ff4500”))
}
如果(位置==2){sendCommand(“1060219”)
选择editem.setTextColor(Color.parseColor(“#454545”))
选择editem.setBackgroundColor(Color.parseColor(“#32cd32”))
}
如果(位置==3){sendCommand(“1100219”)
选择editem.setTextColor(Color.parseColor(“#f8faed”))
选择editem.setBackgroundColor(Color.parseColor(“#1e90ff”))
}
如果(位置==4){sendCommand(“1040219”)
选择editem.setTextColor(Color.parseColor(“#454545”))
选择editem.setBackgroundColor(Color.parseColor(“#ffff00”))
}
}
}
它没有中性状态,而是默认状态。有效地创建切换按钮不会触发检查更改侦听器,因为状态没有更改,而是设置了
最直接的解决方案是提取
sendCommand("1050000")
A00.setBackgroundColor(Color.rgb(248, 250, 237))
A00.setTextColor(Color.rgb(96, 96, 96))
并在活动/片段回调中调用它
问题的第二部分是重新发布,请参见。换句话说,我希望这段代码只在第二次调用时运行。就像一个后期增量。有办法吗?谢谢谢谢你的回答!你能给我举个简单的例子吗?“分离函数,并在活动/片段创建中调用它”。谢谢当然在同一个文件中单独创建一个这样的文件:
fun setCheckedState(){sendCommand(“1050000”)A00.setBackgroundColor(Color.rgb(248250,237))A00.setxtcolor(Color.rgb(96,96,96))
然后,像这样调用它:重写fun onCreate(savedInstanceState:Bundle?{super.onCreate(savedInstanceState)setCheckedState()}
并且在初始函数中:A00.setOnCheckedChangeListener{uu,isChecked->if(isChecked){setCheckedState()}else{…}
sendCommand("1050000")
A00.setBackgroundColor(Color.rgb(248, 250, 237))
A00.setTextColor(Color.rgb(96, 96, 96))