我的SeekBar有时会收到NullPointerException
。
我正在学习Android,但我无法找到解决此错误的正确方法。
我正在使用onStopTrackingTouch
SeekBar的以下代码:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
功能setScaledSize
显示如下:
private void setScaledSize(float scaledSize) {
mSizeSeekBar.setProgress((int) (scaledSize * 100.0f));
paintview.setDrawingScaledSize(scaledSize);
}
我收到类似以下日志的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.shayari.cardmaker.PaintView.setDrawingScaledSize(float)' on a null object reference
at com.example.shayari.cardmaker.NameArt.setScaledSize(NameArt.java:767)
at com.example.shayari.cardmaker.NameArt.access$200(NameArt.java:78)
at com.example.shayari.cardmaker.NameArt$19.onStopTrackingTouch(NameArt.java:708)
at android.widget.SeekBar.onStopTrackingTouch(SeekBar.java:121)
at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:772)
at android.view.View.dispatchTouchEvent(View.java:10063)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2636)
如何防止此错误?
答案 0 :(得分:1)
更改以下内容:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
将分母从100.f更改为100.0f,如下所示:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.0f);
}