有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

片段类内部的java ProgressBar导致setMax方法出现NullPointerException?

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.analogin_fragment,
                container, false);
        AITVVOLT0 = (TextView) rootView.findViewById(R.id.aintvvolt0);
        AITVVOLT1 = (TextView) rootView.findViewById(R.id.aintvvolt1);
        AITVVOLT2 = (TextView) rootView.findViewById(R.id.aintvvolt2);
        AITVVOLT3 = (TextView) rootView.findViewById(R.id.aintvvolt3);
        AITVVOLT4 = (TextView) rootView.findViewById(R.id.aintvvolt4);
        AITVVOLT5 = (TextView) rootView.findViewById(R.id.aintvvolt5);

        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar0);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar1);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar2);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar3);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar4);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar5);


        AIVOLTBAR0.setMax(100);
        AIVOLTBAR1.setMax(100);
        AIVOLTBAR2.setMax(100);
        AIVOLTBAR3.setMax(100);
        AIVOLTBAR4.setMax(100);
        AIVOLTBAR5.setMax(100);

        AIVOLTBAR0.setProgress(0);
        AIVOLTBAR1.setProgress(0);
        AIVOLTBAR2.setProgress(0);
        AIVOLTBAR3.setProgress(0);
        AIVOLTBAR4.setProgress(0);
        AIVOLTBAR5.setProgress(0);

        return rootView;
    }

艾沃尔特酒吧。setMax();方法会导致NullPointerException,但ProgressBars不是null(使用日志测试,并注释掉setMax会导致程序工作)

Logcat:

08-20 16:23:18.409: E/AndroidRuntime(1332): Process: com.nanospark.安卓app, PID: 1332
08-20 16:23:18.409: E/AndroidRuntime(1332): java.lang.NullPointerException
08-20 16:23:18.409: E/AndroidRuntime(1332):     at com.nanospark.安卓app.MainActivity$AnalogInputFragment.onCreateView(MainActivity.java:218)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.os.Handler.handleCallback(Handler.java:733)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.os.Handler.dispatchMessage(Handler.java:95)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.os.Looper.loop(Looper.java:136)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at 安卓.app.ActivityThread.main(ActivityThread.java:5017)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at java.lang.reflect.Method.invokeNative(Native Method)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at java.lang.reflect.Method.invoke(Method.java:515)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-20 16:23:18.409: E/AndroidRuntime(1332):     at dalvik.system.NativeStart.main(Native Method)
08-20 16:27:27.557: E/BluetoothAdapter(1387): Bluetooth binder is null
08-20 16:27:27.853: E/OpenGLRenderer(1387): Getting MAX_TEXTURE_SIZE from GradienCache
08-20 16:27:27.853: E/OpenGLRenderer(1387): MAX_TEXTURE_SIZE: 16384
08-20 16:27:27.865: E/OpenGLRenderer(1387): Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
08-20 16:27:27.869: E/OpenGLRenderer(1387): MAX_TEXTURE_SIZE: 16384
08-20 16:27:28.409: E/AndroidRuntime(1387): FATAL EXCEPTION: main
08-20 16:27:28.409: E/AndroidRuntime(1387): Process: com.nanospark.安卓app, PID: 1387
08-20 16:27:28.409: E/AndroidRuntime(1387): java.lang.NullPointerException
08-20 16:27:28.409: E/AndroidRuntime(1387):     at com.nanospark.安卓app.MainActivity$AnalogInputFragment.onCreateView(MainActivity.java:223)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.os.Handler.handleCallback(Handler.java:733)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.os.Handler.dispatchMessage(Handler.java:95)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.os.Looper.loop(Looper.java:136)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at 安卓.app.ActivityThread.main(ActivityThread.java:5017)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at java.lang.reflect.Method.invokeNative(Native Method)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at java.lang.reflect.Method.invoke(Method.java:515)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-20 16:27:28.409: E/AndroidRuntime(1387):     at dalvik.system.NativeStart.main(Native Method)

共 (1) 个答案

  1. # 1 楼答案

    问题是你有一些打字错误。您多次设置AIVOLTBAR0,而不是单独设置每个进度条:

        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar0);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar1);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar2);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar3);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar4);
        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar5);
    

    相反,它需要这样:

        AIVOLTBAR0 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar0);
        AIVOLTBAR1 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar1);
        AIVOLTBAR2 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar2);
        AIVOLTBAR3 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar3);
        AIVOLTBAR4 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar4);
        AIVOLTBAR5 = (ProgressBar) rootView.findViewById(R.id.aintvvoltbar5);