我使用 MPandroidchart 在 android studio 上的片段中创建了一个折线图,并使其图表的点来自用户输入。但是,我收到错误“java.lang.NullPointerException”。我知道此错误是由于尝试使用空值引起的,但我不确定如何在我的情况下修复它。
编辑:用户输入保存在房间数据库中
我从一个方法中检索用户输入,该方法中有代码确保输入为空时不会保存。我认为问题是因为图表正在尝试在用户添加数据之前构建,因为输入选项是显示图表的片段的一部分,因此图表正在尝试在数据准备好之前构建。
Graph.java
public class Graph extends Fragment {
public Graph() {
// Required empty public constructor
}
private LineChart mChart;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_graph, container, false);
//initialize input1 database
InputRoomDatabase db = Room.databaseBuilder(getActivity(),InputRoomDatabase.class, "input_database")
.build();
//initialize chart
mChart = view.findViewById(R.id.chart);
//set description
Description description = new Description();
description.setText("Blood glucose levels");
mChart.setDescription(description);
//set description if no data is available
mChart.setNoDataText("No Data Available. Add a blood glucose level input to see your graph");
//enable touch gestures
mChart.setTouchEnabled(true);
//enable scaling and dragging
mChart.setDragEnabled(true);
mChart.setScaleEnabled(true);
//draw background grid
mChart.setDrawGridBackground(true);
//draw x-axis
XAxis xAxis = mChart.getXAxis();
xAxis.setEnabled(false);
}
当我运行应用程序时,它崩溃并给出此错误 java.lang.NullPointerException: Attempt to invoke virtual method 'double android.os.Bundle.getDouble(java.lang.String)' on a null object reference
我已在 Graph.java 中用 ** 标记了问题代码
正如我所说,我认为问题在于图表正在尝试在数据准备好之前构建,但我不确定如何避免这个问题。
慕码人2483693
相关分类