我需要在LinearLayout
中动态添加LineChart(使用MpAndroidChart)。
我已经声明了一个名为列表的arrayList。
val list = arrayListOf<ABC>()
....
for (i in list) {
chart[] = LineChart(activity)
}
我应该在[]
中输入什么值?假设list
的saiz是2,我需要在LinearLayout
中有2个图表。
我应该如何初始化LineChart
?
示例
chart[i] = LineChart(activity)
???
LineChart
public class LineChart extends BarLineChartBase<LineData> implements LineDataProvider {
public LineChart(Context context) {
super(context);
}
public LineChart(Context context, AttributeSet attrs) {
super(context, attrs);
}
public LineChart(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void init() {
super.init();
mRenderer = new LineChartRenderer(this, mAnimator, mViewPortHandler);
}
@Override
public LineData getLineData() {
return mData;
}
@Override
protected void onDetachedFromWindow() {
// releases the bitmap in the renderer to avoid oom error
if (mRenderer != null && mRenderer instanceof LineChartRenderer) {
((LineChartRenderer) mRenderer).releaseBitmap();
}
super.onDetachedFromWindow();
}
}
答案 0 :(得分:2)
您的问题尚不清楚,但是我没听错,您可以像这样在一行中完成它:
val chart = Array(list.size){ LineChart(list[it]) }
或者:
val chart = list.map{ LineChart(it) }.toTypedArray()
(后者创建了一个临时列表,效率可能会稍低;但是它会遍历列表而不是建立索引,如果列表不是随机访问的,则可能会更快。)
答案 1 :(得分:0)
这是我的答案
for (i in 0 unti list.size) {
chart[i] = LineChart(activity)
}