2015-12-14 64 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

请不要发布裸露的代码,也请提供解释代码在做什么。 –