我将定时接近传感器更改为
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")
}
出现在我的ProximityDetector.kt文件
中并使用
将其显示在我的应用上timeTaken.setText("That took " + (b - a) + " milliseconds")
位于我的SettingsActivity.kt文件中
但它只显示一个传感器更改的值,对于后续的传感器更改,应用程序需要撤消并再次打开。如何显示每个传感器更改的值??? 我尝试过这种方式
override fun onSensorChanged(event: SensorEvent) {
timeTaken.setText("That took " + (b - a) + " milliseconds")}
但它显示了修饰符&#39;覆盖&#39;不适用于本地功能
答案 0 :(得分:0)
在ProximityDetector.kt文件中创建interface
。
interface OnSensorValueChange{
fun onValueChange(value: Long);
}
在SettingsActivity.kt文件中实现它。
override fun onValueChange(value: Long) {
timeTaken.setText("That took " + value + " milliseconds")
}
在SettingsActivity
类构造函数中传递ProximityDetector
引用并指定它。
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.
}
答案 1 :(得分:-1)
在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")