2016-07-11 3 views
1

Ich zeige ein einfaches Balkendiagramm in meiner Android Anwendung mit der MPAndroid Bibliothek. Das Balkendiagramm zeigt die Daten manchmal perfekt an. Manchmal wird jedoch die Meldung "Keine Diagrammdaten verfügbar" angezeigt, obwohl das DataSet Daten enthält.MPAndroid Balkendiagramm zeigt Graphen nur nach dem Tippen auf den Chart Bereich, sonst zeigt 'Keine Chart Daten verfügbar'

Das Diagramm wird nur angezeigt, wenn ich auf den Diagrammbereich klicke. Ich habe das gegoogelt, aber ich kann keine Lösung finden. Folgendes ist der Code:

if (mCount > 0){mBarDataSet = new BarDataSet(mBarEntryAssessmentList, "Assessment Count"); 
     mBarDataSet.setBarSpacePercent(5f); 
     mBarData = new BarData(trimmedSubjectNameList, mBarDataSet); 
     mBarData.setValueFormatter(new BarEntryValueFormatter()); // Setting a Value formatter to show Integer data instead of Float 
     mBarChart.setData(mBarData); 
     mBarChart.setDescription(""); 
     mBarChart.setDrawGridBackground(false); 
     mBarChart.setDragEnabled(true); 
     mBarChart.setTouchEnabled(true); 
     mBarChart.setClickable(true); 
     mBarChart.setScaleXEnabled(false); 
     mBarChart.setScaleYEnabled(false); 
     mBarChart.setVisibleXRange(1, 4); 
     mBarChart.setHighlightPerDragEnabled(false); 
     mBarChart.setHighlightPerTapEnabled(true); // set this to true if we want to listen to click events 
     mBarChart.setOnChartValueSelectedListener(StudentProgressActivity.this); 

     XAxis xAxis = mBarChart.getXAxis(); 
     xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
     xAxis.setDrawLabels(true); 
     xAxis.setDrawGridLines(false); 
     xAxis.setLabelsToSkip(0); // Shows all the labels as initially we had problems showing all the labels 

     YAxis leftAxis = mBarChart.getAxisLeft(); 
     leftAxis.setDrawLabels(true); 
     leftAxis.setDrawGridLines(false); 
     leftAxis.setAxisMinValue(0f); // Removes padding below YAxis minimum value and XAxis labels 

     YAxis rightAxis = mBarChart.getAxisRight(); 
     rightAxis.setDrawLabels(false); 
     rightAxis.setDrawGridLines(false); 
    } else { 
     mBarChart.setDescription(""); 
     mBarChart.setNoDataText("No Assessments yet"); 
    } 

Jede Hilfe wird geschätzt.

Antwort

2

Am Ende außerhalb Ihrer Bedingung hinzu:

mBarChart.invalidate(); 
mBarChart.refreshDrawableState(); 

Hoffnung, das Ihr Problem lösen wird.

+1

Es hat das Problem gelöst. Vielen Dank. – Bot