[英]Trouble converting Java code to Kotlin to implement an OnChangeListener
我有以下代码来实现Range Bar库的侦听器:
rangebar.setOnRangeBarChangeListener(new RangeBar.OnRangeBarChangeListener() {
@Override
public void onRangeChangeListener(RangeBar rangeBar, int leftPinIndex,
int rightPinIndex, String leftPinValue, String rightPinValue) {
}
});
现在,我尝试通过以下方式将其导入并将其更改为kotlin:
rangebar.setOnRangeBarChangeListener(object: RangeBar.OnRangeBarChangeListener {
override fun onRangeChangeListener(rangeBar:RangeBar, leftPinIndex:Int,
rightPinIndex:Int, leftPinValue:String, rightPinValue:String) {
textView.text = "$leftPinIndex"
}
})
要么
rangebar.setOnRangeBarChangeListener { rangeBar, leftPinIndex,
rightPinIndex, leftPinValue, rightPinValue ->
textView.text = "$leftPinIndex" }
在这两种情况下,应用程序都会崩溃并显示以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void com.appyvet.materialrangebar.RangeBar.setOnRangeBarChangeListener>(com.appyvet.materialrangebar.RangeBar $ OnRangeBarChangeListener)'
我究竟做错了什么?
您的rangebar
为null ,
为了避免崩溃,可以这样使用:
rangebar?.setOnRangeBarChangeListener(object: RangeBar.OnRangeBarChangeListener {
override fun onRangeChangeListener(rangeBar:RangeBar, leftPinIndex:Int, rightPinIndex:Int, leftPinValue:String, rightPinValue:String) {
textView.text = "$leftPinIndex"
}
})
要么
rangebar?.setOnRangeBarChangeListener { rangeBar, leftPinIndex, rightPinIndex, leftPinValue, rightPinValue ->
textView.text = "$leftPinIndex"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.