Android 在Kotlin中动态更改textView值

Android 在Kotlin中动态更改textView值,android,android-layout,kotlin,proximitysensor,Android,Android Layout,Kotlin,Proximitysensor,我对接近传感器的变化进行了计时 override fun onSensorChanged(event: SensorEvent) { val distance = event.values[0] val max = event.sensor.maximumRange a = System.currentTimeMillis() if (distance < Math.min(max, 8.toFloat())) { lis

我对接近传感器的变化进行了计时

 override fun onSensorChanged(event: SensorEvent) {
       val distance = event.values[0]
       val max = event.sensor.maximumRange
       a = System.currentTimeMillis()
    if (distance < Math.min(max, 8.toFloat())) {
        listener.onNear()
    } else {
        listener.onFar()
    }

        b = System.currentTimeMillis()
    System.out.println("That took " + (b- a) + " milliseconds")
}
在我的SettingsActivity.kt文件中

但它只显示一个传感器更改的值,对于后续传感器更改,应用程序需要退出并再次打开。如何显示每个传感器变化的值??? 我试过用这种方法

override fun onSensorChanged(event: SensorEvent) {
    timeTaken.setText("That took " + (b - a) + " milliseconds")}

但它显示了修饰符“override”不适用于kotlin中的本地函数。不要像java中那样使用getter和setter。下面给出了kotlin的正确格式

val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
    textView.text = getString(R.string.name)
}
要从Textview中获取值,我们必须使用此方法

val str: String = textView.text.toString()

 println("the value is $str")

在kotlin中,不要像在java中那样使用getter和setter

val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
    textView.text = getString(R.string.name)
}
要从Textview中获取值,我们必须使用此方法

val str: String = textView.text.toString()

 println("the value is $str")
在ProximityDetector.kt文件中创建接口

interface OnSensorValueChange{
    fun onValueChange(value: Long);
}
在setingsactivity.kt文件中实现它

override fun onValueChange(value: Long) {
    timeTaken.setText("That took " + value + " milliseconds")
}
在ProximityDetector类构造函数中传递SettingsActivity引用并将其赋值

class ProximityDetector constructor(var onSensorValueChange: ProximityDetector.OnSensorValueChange)
并调用接口的方法来更新值

    override fun onSensorChanged(event: SensorEvent) {
       val distance = event.values[0]
       val max = event.sensor.maximumRange
       a = System.currentTimeMillis()
    if (distance < Math.min(max, 8.toFloat())) {
        listener.onNear()
    } else {
        listener.onFar()
    }

        b = System.currentTimeMillis()
    System.out.println("That took " + (b- a) + " milliseconds")
    onSensorValueChange.onValueChange((b- a)) //add this line.
}  
在ProximityDetector.kt文件中创建接口

interface OnSensorValueChange{
    fun onValueChange(value: Long);
}
在setingsactivity.kt文件中实现它

override fun onValueChange(value: Long) {
    timeTaken.setText("That took " + value + " milliseconds")
}
在ProximityDetector类构造函数中传递SettingsActivity引用并将其赋值

class ProximityDetector constructor(var onSensorValueChange: ProximityDetector.OnSensorValueChange)
并调用接口的方法来更新值

    override fun onSensorChanged(event: SensorEvent) {
       val distance = event.values[0]
       val max = event.sensor.maximumRange
       a = System.currentTimeMillis()
    if (distance < Math.min(max, 8.toFloat())) {
        listener.onNear()
    } else {
        listener.onFar()
    }

        b = System.currentTimeMillis()
    System.out.println("That took " + (b- a) + " milliseconds")
    onSensorValueChange.onValueChange((b- a)) //add this line.
}  


您在活动中实现了SensorEventListener吗?是的,我已经实现了它。您在活动中实现了SensorEventListener吗?是的,我已经实现了它。如何显示计时值b-a?此行的作用是什么??textView.text=getStringR.string.nameDear这是示例textView.text=getStringR.string.NameTimeTake.text=花费+b-a+毫秒;谢谢您,先生,您的方法正在运行,但我必须单击该文本视图以查看更新的值。有没有办法不用点击就更新它们???如何显示定时值b-a???这行做什么??textView.text=getStringR.string.nameDear这是示例textView.text=getStringR.string.NameTimeTake.text=花费+b-a+毫秒;谢谢您,先生,您的方法正在运行,但我必须单击该文本视图以查看更新的值。是否有任何方法可以在不单击的情况下更新它们???我已经在ProximityDetector类ProximityDetectorcontext:Context,private val listener:ProximityListener:SensorEventListener中有了这个类{private val sensorManager=context.getsystemservicecoxt.SENSOR\服务作为sensorManager private var SENSOR:SENSOR?=nullAdd这两个文件的代码,这样我就可以看到你做了什么?当然,先生,这是那些文件的链接,我查看了你的代码,你在SettingActivity中没有实现任何接口。在Proximit中创建新接口检测程序类与我对SensorValueChange的回答中的相同,并遵循我的回答。我在ProximityDetector类ProximityDetectorcontext:Context,private val listener:ProximityListener:SensorEventListener中已经有此类{private val sensorManager=context.getsystemservicecoxt.SENSOR\服务作为sensorManager private var SENSOR:SENSOR?=nullAdd这两个文件的代码,这样我就可以看到你做了什么?当然,先生,这是那些文件的链接,我查看了你的代码,你在SettingActivity中没有实现任何接口。在Proximit中创建新接口Y检测器类与我关于SensorValueChange的回答相同,并遵循我的回答。