首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新条目MPAndroidChart

更新条目MPAndroidChart
EN

Stack Overflow用户
提问于 2016-04-12 21:07:24
回答 1查看 585关注 0票数 0

我使用CandleStick图表。我需要让最后一根蜡烛实时更新它的CLOSE值。我尝试过的:

代码语言:javascript
复制
CandleEntry lastEntry = getCandleData().getDataSetByIndex(0).getEntryForXIndex(candleDataSetEntryCount);
lastEntry.setClose(newClose);
getCandleData().notifyDataChanged();
notifyDataSetChanged();
invalidate();

或(尝试删除最后一个条目并添加一个新条目而不是它)

代码语言:javascript
复制
getCandleData().getDataSetByIndex(0).removeLast();
getCandleData().notifyDataChanged();
notifyDataSetChanged();

getCandleData().addXValue("0");
getCandleData().addEntry(new CandleEntry(getCandleData().getDataSetByIndex(0).getEntryCount(), oldHigh, oldLow, oldOpen, newClose), 0);
notifyDataSetChanged();
invalidate();

如果我只删除最后一个条目或添加一个新条目,代码就会起作用,但当我尝试用新条目替换旧条目时,代码就不起作用了。附注:如果我记录“更改”项的值-它实际上是更改的,似乎是用旧的像素数据绘制的。

EN

回答 1

Stack Overflow用户

发布于 2016-04-14 15:55:21

我终于找到了问题所在。lib中有一个bug,lib没有画出最后一根蜡烛。它在倒数第二个条目处停止。问题出在计算drawDataSet()方法中的“maxx”值。

变化

代码语言:javascript
复制
while ( maxx < entries.size() -1 && entries.get(maxx).getXIndex() < mMaxDisplayedIndex+1 ) maxx++;

代码语言:javascript
复制
while ( maxx <= entries.size() -1 && entries.get(maxx).getXIndex() <= mMaxDisplayedIndex+1 ) maxx++;

在此之后,chart绘制最后一个条目,您可以轻松地访问最后一个条目,更改它的值,调用notifyDataSetChanged()和invalidate()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36574261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档