arraylist - 根据列表大小在Kotlin中初始化数组

标签 arraylist kotlin

我需要在LinearLayout中动态添加LineChart(使用MpAndroidChart)。

我已经声明了一个arrayList,命名为list。

 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();
    }
}

最佳答案

您的问题尚不清楚,但是我没听错,您可以像这样在一行中完成此操作:

val chart = Array(list.size){ LineChart(list[it]) }

要么:
val chart = list.map{ LineChart(it) }.toTypedArray()

(后者会创建一个临时列表,效率可能会稍低;但是它会遍历列表而不是建立索引,如果列表不是随机访问的,则可能会更快。)

关于arraylist - 根据列表大小在Kotlin中初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375884/

相关文章:

Android Studio Recyclerview 使用 Retrofit

java - 如何使用 Ktor Kotlin/Java 应用程序中的 gradle 构建有效的 JAR 文件

java - AsyncTask 在 Kotlin 中的使用

android - Kotlin:遍历 JSONArray

Java:用ArrayList写pojo最高效的方法

java - 列表项 = new ArrayList() : it does not work

java - toString方法ArrayList简单递归

java - firebase 中的 "equalTo"和 "startAt & endAt"有什么不同,什么时候应该使用 "equalTo"或 "startAt and endAt"?

kotlin - 是否有一种优雅的 kotlin 方式可以让编译器相信我刚刚为其分配了真实值的可空字段不能再为空?

android - 如何在微调器的 ArrayAdapter 中添加 ArrayList<My class>?