2015-12-14 63 views
4

我有這樣MPAndroidChart沒有更新

LinkedHashMap<String, String> hash = new LinkedHashMap<>(); 
hash.put("2015-05-03", 100); 
hash.put("2015-05-04", 110); 
hash.put("2015-05-05", 90); 
hash.put("2015-05-06", 40); 

我想通過MPAndroidChart設計應用於LineChart一個HashMap,但它不能正常工作,圖是無效的,沒有什麼表演!看來我的代碼是無效的。
這裏是我的代碼:

private void setChartData(LinkedHashMap<String, String> lastMonthMediaLikes) 
    { 

     ArrayList<String> xVals = new ArrayList<>(); 

     for(Map.Entry<String, String> entry : lastMonthMediaLikes.entrySet()) 
     { 
      xVals.add(entry.getKey()); 
     } 



     ArrayList<Entry> vals1 = new ArrayList<>(); 
     int i = 0; 
     for(Map.Entry<String, String> entry : lastMonthMediaLikes.entrySet()) 
     { 
      vals1.add(new Entry(Float.valueOf(entry.getValue()), i)); 
      i++; 
     } 

     // create a dataset and give it a type 
     LineDataSet set1 = new LineDataSet(vals1, "DataSet 1"); 
     set1.setDrawCubic(true); 
     set1.setCubicIntensity(0.2f); 
     //set1.setDrawFilled(true); 
     set1.setDrawCircles(false); 
     set1.setLineWidth(1.8f); 
     set1.setCircleSize(4f); 
     set1.setCircleColor(Color.WHITE); 
     set1.setHighLightColor(Color.rgb(244, 117, 117)); 
     set1.setColor(Color.WHITE); 
     set1.setFillColor(Color.WHITE); 
     set1.setFillAlpha(100); 
     set1.setDrawHorizontalHighlightIndicator(false); 
     set1.setFillFormatter(new FillFormatter() 
     { 
      @Override 
      public float getFillLinePosition(LineDataSet dataSet, LineDataProvider dataProvider) 
      { 
       return -10; 
      } 
     }); 

     // create a data object with the datasets 
     LineData data = new LineData(xVals, set1); 
     //data.setValueTypeface(tf); 
     data.setValueTextSize(9f); 
     data.setDrawValues(false); 

     // set data 
     chart.setData(data); 
    } 

請指點,我該怎麼辦?

回答

10

您通過setData(...)設置數據,但你是不是通過調用invalidate()刷新View

這應該做的工作:

LineChart chart = ...; 

chart.setData(...); // set data 
chart.invalidate(); // refresh after setting data 
0

嘗試也在不斷變化data.setDrawValues(假); data.setDrawValues(true);

+0

當您在此發佈任何內容時,請確保代碼格式正確。 –

+0

請不要發佈裸露的代碼,也請提供解釋代碼在做什麼。 –