MPAndroidChart 没有更新
MPAndroidChart is not updating
我有一个像这样的 hashmap
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设计一个折线图,但它不起作用,图表无效,没有任何显示!看来我的代码无效。
这是我的代码:
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);
}
请指教,我该怎么办?
您正在通过 setData(...)
设置数据,但是 您没有通过调用 invalidate()
.
刷新 View
这应该可以完成工作:
LineChart chart = ...;
chart.setData(...); // sets data & also calls notifyDataSetChanged()
chart.invalidate(); // refreshes chart
也尝试更改 data.setDrawValues(false)
;到 data.setDrawValues(true)
;
试试这个
mChart.clearValues();
我有一个像这样的 hashmap
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设计一个折线图,但它不起作用,图表无效,没有任何显示!看来我的代码无效。
这是我的代码:
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);
}
请指教,我该怎么办?
您正在通过 setData(...)
设置数据,但是 您没有通过调用 invalidate()
.
View
这应该可以完成工作:
LineChart chart = ...;
chart.setData(...); // sets data & also calls notifyDataSetChanged()
chart.invalidate(); // refreshes chart
也尝试更改 data.setDrawValues(false)
;到 data.setDrawValues(true)
;
试试这个
mChart.clearValues();