Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我能';t正确使用微调器功能[kotlin]_Android_Kotlin - Fatal编程技术网

Android 我能';t正确使用微调器功能[kotlin]

Android 我能';t正确使用微调器功能[kotlin],android,kotlin,Android,Kotlin,当用户将微调器项更改为“红色”时,我在使用sendCommand函数时遇到问题: class SetTrainingRouteActivity:AppCompatActivity(){ 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity\u set\u training\u route) val微调器:微调器=findViewById(R

当用户将微调器项更改为“红色”时,我在使用sendCommand函数时遇到问题:

class SetTrainingRouteActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u set\u training\u route)
val微调器:微调器=findViewById(R.id.S24)
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter.createFromResource(
这
R.A.A24,
android.R.layout.simple\u微调器\u项目
)。另外{适配器->
//指定显示选项列表时要使用的布局
adapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项)
//将适配器应用于微调器
spinner.adapter=适配器
}
S24.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖未选择的乐趣(家长:AdapterView?){
}
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
如果(S24.等于(“红色”)){
sendCommand(“1000024”)
}
}
}
}
私有命令(输入:字符串){
if(ControlActivity.arduino_bluetoothSocket!=null){
试一试{
ControlActivity.arduino\u bluetoothSocket!!.outputStream.write(input.toByteArray())
}捕获(e:IOException){
e、 printStackTrace()
}
}
}
}

关
红色
绿色
蓝色

您以错误的方式读取值。下面的代码将起作用

S24.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {

    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {

        val selectedItem = parent?.getItemAtPosition(position)

        if (selectedItem?.equals("Red") == true) {
            sendCommand("1000024")
        }
    }
}
S24.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖未选择的乐趣(家长:AdapterView?){
}
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
val selectedItem=parent?.getItemAtPosition(位置)
如果(选择编辑项?.equals(“红色”)==true){
sendCommand(“1000024”)
}
}
}
您要做的是将微调器实例与值“Red”进行比较,因为它们不同,所以“Red”永远不会起作用


您需要使用正确的方法读取值,然后进行比较。

Android Studio指出对象selectedItem=parent.getItemAtPosition(position)存在问题,如果(selectedItem.equals(“红色”){sendCommand(“1000024”)}如果您能帮我解决这个问题,我非常感谢itAndroid Studio使用上述解决方案指出这些错误-对象分类器没有伴生对象,因此必须在此处初始化-selectedItem unresolved References这是我必须更改的。覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){val selectedItem:Any?=父项?.getItemAtPosition(位置)非常感谢!是的,空安全性,我更新了答案,使用空安全性
S24.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {

    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {

        val selectedItem = parent?.getItemAtPosition(position)

        if (selectedItem?.equals("Red") == true) {
            sendCommand("1000024")
        }
    }
}