首页 > 解决方案 > Graphview空对象引用我该如何解决?

问题描述

与其他 nulpoint 不同,因为我在问如何绘制图形?我有一个双倍的临时数据类型,但它不是空的。我的蓝牙从设备获取温度数据。我想真正绘制图形(x:时间,y:温度)我想用这段代码绘制图形,我无法绘制如何修复?当我绘制图表时,我有很多 Logcat。我试过很多次请帮助我

public class Fragment2 extends Fragment {
    // TODO: Rename parameter arguments, choose names that match

    private View convertView;
GraphView temp_graph;
    TextView incomingMessages;
    Double messages;
    Double [] temp = new Double[1000];
    Double [] time = new Double [1000];
    Handler mHandler = new Handler();
    int i=0;
    LineGraphSeries<DataPoint> line_series;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if(convertView==null){
            convertView=inflater.inflate(R.layout.fragment_fragment2, container, false);
            incomingMessages= (TextView) convertView.findViewById(R.id.text);
            temp_graph =(GraphView) convertView.findViewById(R.id.graph);


            LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, new IntentFilter("incomingMessage"));
            DataPoint [] dataPoints = new DataPoint[time.length];


        }
   // Inflate the layout for this fragment
        return convertView;
    }
    BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String text=intent.getStringExtra("theMessage");
            incomingMessages.setText(text);
            temp[i]=Double.parseDouble(text);
            DataPoint [] dataPoints = new DataPoint[1000];

             line_series =
                    new LineGraphSeries<DataPoint>(dataPoints);
            for (int i=0; i<1000; i++){
                dataPoints[i]= new DataPoint(i,temp[i]);
            }
            temp_graph.addSeries(line_series);

            i++;

         Log.d("deneme","temp"+temp[1]+"temp2 "+ temp[2]);
        }
    };

    }

这是我的 logcat 错误:

java.lang.NullPointerException: Attempt to invoke interface method 'double com.jjoe64.graphview.series.DataPointInterface.getX()' on a null object reference
                      at com.jjoe64.graphview.series.BaseSeries.checkValueOrder(BaseSeries.java:527)
                      at com.jjoe64.graphview.series.BaseSeries.<init>(BaseSeries.java:117)
                      at com.jjoe64.graphview.series.LineGraphSeries.<init>(LineGraphSeries.java:163)
                      at com.example.duygu.mybluetoothdevicelist.Fragment2$1.onReceive(Fragment2.java:73)
                      at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:311)
                      at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:47)
                      at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:120)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5525)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

标签: android

解决方案


推荐阅读