Java 使用SeekBar处理NullPointerException
我有时用我的SeekBar接收到一个Java 使用SeekBar处理NullPointerException,java,android,nullpointerexception,seekbar,android-seekbar,Java,Android,Nullpointerexception,Seekbar,Android Seekbar,我有时用我的SeekBar接收到一个NullPointerException 我正在学习Android,但我无法找到正确的方法来修复这个错误 我将以下代码用于onStopTrackingTouchSeekBar: public void onStopTrackingTouch(SeekBar seekBar) { setScaledSize(seekBar.getProgress() / 100.f); } private void se
NullPointerException
我正在学习Android,但我无法找到正确的方法来修复这个错误
我将以下代码用于onStopTrackingTouch
SeekBar:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
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)
和功能setScaledSize
如下所示:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
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)
我收到一个类似以下日志的错误:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
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)
如何防止此错误?更改以下内容:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.f);
}
通过将分母从100.f更改为100.0f,如下所示:
public void onStopTrackingTouch(SeekBar seekBar) {
setScaledSize(seekBar.getProgress() / 100.0f);
}
在OnStopTrackingTouch函数中,尝试将分母从100.f更改为100。0f@gonephishing. 我认为它与你的解决方案配合得很好。谢谢,我已经把它作为答案贴了出来,这样我们就可以结束这个问题了。