将 List 放入 Bundle 对象

And*_*rea 3 java android bundle kotlin

我想将一个添加List<CustomObject>到一个Bundle对象中。这CustomObject实现了Parcelable接口。我注意到 Bundle 对象有一个隐藏的类,它允许我传递一个List对象。

/** {@hide} */
    @UnsupportedAppUsage
    public void putParcelableList(String key, List<? extends Parcelable> value) {
        unparcel();
        mMap.put(key, value);
        mFlags &= ~FLAG_HAS_FDS_KNOWN;
    }
Run Code Online (Sandbox Code Playgroud)

然而正如我们所见,它是隐藏的。我如何可以传递ListCustomObjectS' 或者如何将列表转换为ArrayList使用 Kotlin的列表?

Kis*_*ava 5

如何使用 Kotlin 将列表转换为 ArrayList?

只需投射为ArrayList

val bundle = Bundle()
val list : List<CustomObject > = ArrayList<CustomObject>()
bundle.putParcelableArrayList("list", list as ArrayList<CustomObject>)
Run Code Online (Sandbox Code Playgroud)


Vid*_*ana 5

您可以使用此代码将列表转换为数组

val arrayList = ArrayList(list)
Run Code Online (Sandbox Code Playgroud)