0

MPAndroidChartを使用して、データベースに格納されたデータから円グラフを作成しようとしています。 データベースのサイズが固定されていないため、2〜7個のデータがある可能性があります。私はこのMPAndroidChart nullオブジェクト参照エラーを解決できません

これは、データベースからデータを取得する方法です。

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]); 
    } 

次のようにsetRotationEnabled(boolean)を含む部分は、すべては私addDataSetメソッドを呼び出す前にあるこれは私が手にエラーがnullポインタ例外エラーであり、これは正確な

Attempt to invoke virtual method 'void com.github.mikephil.charting.charts.PieChart.setRotationEnabled(boolean)' on a null object reference

します提供されました。

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で使用するために渡すことができないと思います。 ご協力いただければ幸いです。

+0

'setRotationEnabled()'の行に問題があるため、クラス全体を追加してください –

+0

@OussemaArouaあなたが尋ねたことを追加しました。 setRotationEnabled(true)を削除すると、それに続く行に対しても同じエラーが発生します。 –

答えて

1

あなたはレイアウト

pieChart = (PieChart) findViewById(R.id.chart1)からPieChartを取得するために忘れてしまいました。

+0

オハイオ州の神私はとてもそんなにばかであることのためにすみませます!! –

+0

私たちは皆このタイプの間違いをします;) –

関連する問題