Kotlin 微调器和切换按钮的中性状态

Kotlin 微调器和切换按钮的中性状态,kotlin,Kotlin,这是我的迪莱玛: 我有一个使用切换按钮(A00)的活动,代码如下。创建活动时,不会调用函数sendCommand(我必须选中并取消选中uncheck命令)。这就像切换按钮在创建时处于中性状态一样 A00.setOnCheckedChangeListener { _, isChecked -> if (isChecked) { sendCommand("1050000") A00.setBackgroundColor(Color.rgb(248, 25

这是我的迪莱玛: 我有一个使用切换按钮(A00)的活动,代码如下。创建活动时,不会调用函数sendCommand(我必须选中并取消选中uncheck命令)。这就像切换按钮在创建时处于中性状态一样

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))