我无法解决这个MPAndroidChart空对象引用错误
我想从存储在数据库中的数据使用MPAndroidChart创建一个饼图。 数据库的大小不固定,因此可能有2到7个数据。我无法解决这个MPAndroidChart空对象引用错误
这是我如何从数据库中获取数据。
myDb = new DatabaseHelper(this);
Cursor pie = myDb.showKharcha();
String[] xData = new String[pie.getCount()];
float[] yData = new float[pie.getCount()];
int i = 0;
float total = 0;
while (pie.moveToNext()){
String kname = pie.getString(1);
Float kh= pie.getFloat(2);
float kharcha = kh.floatValue();
total = total + kharcha ;
xData[i]=kname;
yData[i]=kharcha;
i++;
}
这是使用饼图的数据的一部分。
ArrayList<PieEntry> yEntry= new ArrayList<>();
ArrayList<String> xEntry = new ArrayList<>();
for(i =0;i < yData.length;i++){
yData[i] = yData[i]*100/total;
yEntry.add(new PieEntry(yData[i],i));
}
for(i =0;i < xData.length;i++){
xEntry.add(xData[i]);
}
我得到的错误是空指针异常错误,这是精确
Attempt to invoke virtual method 'void com.github.mikephil.charting.charts.PieChart.setRotationEnabled(boolean)' on a null object reference
含有setRotationEnabled(布尔值)的部分是如下这是调用addDataSet方法之前,一切我已经提供了。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.piechart);
Log.d(TAG, "onCreate: starting to create chart");
pieChart.setRotationEnabled(true);
pieChart.setHoleRadius(25f);
pieChart.setTransparentCircleAlpha(0);
pieChart.setCenterText("Kharcha");
pieChart.setCenterTextSize(10);
addDataSet();}
我想我不能够通过浮动数据在饼图中使用。 任何帮助,将不胜感激。
你忘了从布局
pieChart = (PieChart) findViewById(R.id.chart1)
得到PieChart
;
哦,上帝,我很抱歉成为这样一个白痴! –
我们都犯这种错误;) –
添加您的整个班级,因为您在'setRotationEnabled()'行有问题 –
@OussemaAroua我已经添加了您所要求的内容。如果我删除了setRotationEnabled(true),那么跟在它后面的行就会出现同样的错误,等等。 –