2016-06-27 6 views
1

작은 프로젝트에서 작업하는 Im과 android에서 BarChart를 만드는 방법에 대한 자습서를 따랐습니다. 내가 코드를 실행하려고하면 지금은 데이터가있는 널 포인터 예외

BarData data = new BarData(getXAxisValues(),getDataSet()); 
    chart.setData(data); 
    chart.setDescription("My Chart"); 
    chart.animateXY(2000, 2000); 
    chart.invalidate(); 

지금 내가 chart.setData (데이터)와 오류입니다 라인 (27)에 nullpointer 예외를 얻을, 그래서 내가 뭔가 BarData 데이터를 잘못 생각?

편집 : 의해 발생 : java.lang.NullPointerException이 : 가상 메소드 호출하려고 '무효 com.github.mikephil.charting.charts.BarChart.setData (com.github.mikephil.charting.data.ChartData)를' groep2.project4.test.MainActivity.onCreate (MainActivity.java:27)에서 널 객체 참조

라인 27 chart.setData (데이터)이다

공용 클래스는 {MainActivity

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    BarChart chart = (BarChart) findViewById(R.id.chart); 

    BarData data = new BarData(getXAxisValues(),getDataSet()); 
    chart.setData(data); 
    chart.setDescription("My Chart"); 
    chart.animateXY(2000, 2000); 
    chart.invalidate(); 
} 

private ArrayList<IBarDataSet> getDataSet() { 
    ArrayList<IBarDataSet> dataSets = null; 
    ArrayList<BarEntry> valueSet1 = new ArrayList<>(); 
    BarEntry v1e1 = new BarEntry(110.000f, 0); // Jan 
    valueSet1.add(v1e1); 
    BarEntry v1e2 = new BarEntry(40.000f, 1); // Feb 
    valueSet1.add(v1e2); 
    BarEntry v1e3 = new BarEntry(60.000f, 2); // Mar 
    valueSet1.add(v1e3); 
    BarEntry v1e4 = new BarEntry(30.000f, 3); // Apr 
    valueSet1.add(v1e4); 
    BarEntry v1e5 = new BarEntry(90.000f, 4); // May 
    valueSet1.add(v1e5); 
    BarEntry v1e6 = new BarEntry(100.000f, 5); // Jun 
    valueSet1.add(v1e6); 

    ArrayList<BarEntry> valueSet2 = new ArrayList<>(); 
    BarEntry v2e1 = new BarEntry(150.000f, 0); // Jan 
    valueSet2.add(v2e1); 
    BarEntry v2e2 = new BarEntry(90.000f, 1); // Feb 
    valueSet2.add(v2e2); 
    BarEntry v2e3 = new BarEntry(120.000f, 2); // Mar 
    valueSet2.add(v2e3); 
    BarEntry v2e4 = new BarEntry(60.000f, 3); // Apr 
    valueSet2.add(v2e4); 
    BarEntry v2e5 = new BarEntry(20.000f, 4); // May 
    valueSet2.add(v2e5); 
    BarEntry v2e6 = new BarEntry(80.000f, 5); // Jun 
    valueSet2.add(v2e6); 

    BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Brand 1"); 
    barDataSet1.setColor(Color.rgb(0, 155, 0)); 
    BarDataSet barDataSet2 = new BarDataSet(valueSet2, "Brand 2"); 
    barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS); 

    dataSets = new ArrayList<>(); 
    dataSets.add(barDataSet1); 
    dataSets.add(barDataSet2); 
    return dataSets; 
} 

private ArrayList<String> getXAxisValues() { 
    ArrayList<String> xAxis = new ArrayList<>(); 
    xAxis.add("JAN"); 
    xAxis.add("FEB"); 
    xAxis.add("MAR"); 
    xAxis.add("APR"); 
    xAxis.add("MAY"); 
    xAxis.add("JUN"); 
    return xAxis; 
} 
ActionBarActivity 확장에

}

+0

차트에 문제가 있습니까? –

+1

가능한 [NullPointerException이란 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it)) –

+1

충돌 로그 게시 .. 27 행의 코드는 무엇입니까? – Mani

답변

0

먼저 로그에 데이터를 인쇄하거나 토스트 메시지에 인쇄하십시오. data에 null 값이 포함되어있을 수 있습니다.

+0

Yh에는 데이터에 Null 값이 들어 있다고 표시됩니다. – AyyLmaokai

+0

'BarData 데이터 = 새 BarData (getXAxisValues ​​(), getDataSet());'이 행을 확인하십시오. –

+0

이제 생성자 오류가 발생합니다. 생성자 arraylist 및 arraylist 을 해결할 수 없습니다. 처음에는 – AyyLmaokai