使用 SeekBar 处理 NullPointerException

Handle NullPointerException with SeekBar

我的 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.access0(NameArt.java:78)
                                                                           at com.example.shayari.cardmaker.NameArt.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);
}