companion object {
fun newInstance(categoryId: Int, brandsList: ArrayList<Int>): Fragment {
val fragment = CategoryAllAdsFragment()
fragment.arguments = Bundle()
fragment.arguments!!.putInt(Constant.CATEGORY_ID, categoryId)
fragment.arguments!!.putParcelableArrayList(Constant.BRANDS_LIST, brandsList)
return fragment
类型不匹配。
Required: java.util.ArrayList !
找到:kotlin.collections.ArrayList /* = java.util.ArrayList */
我试图阅读时也是如此。
Kotlin code
try {
val brandsList = arguments!!.getParcelableArrayList<Int>(Constant.BRANDS_LIST)
} catch (ex: Exception) {
throw Exception("brand list cannot be null")
类型参数不在其范围内
预期的。可包邮!
Found: Int
我已经用Java
测试过了,它的工作很好。
constructor(parcel: Parcel) {
this.value = Any()
override fun writeToParcel(dest: Parcel?, flags: Int) {}
override fun describeContents(): Int = 0
companion object CREATOR : Parcelable.Creator<BaseParcelable> {
override fun createFromParcel(parcel: Parcel): BaseParcelable {
return BaseParcelable(parcel)
override fun newArray(size: Int): Array<BaseParcelable?> {
return arrayOfNulls(size)
然后用这个类在片段之间或(Activty到Fragment)之间传递数据。
例如,要将列表从片段传递到片段。
companion object {
fun newInstance(categoryId: Int, brandsList: ArrayList<Int>): Fragment {
val fragment = CategoryAllAdsFragment()
fragment.arguments = Bundle()
fragment.arguments!!.putInt(Constant.CATEGORY_ID, categoryId)
fragment.arguments!!.putParcelable(Constant.BRANDS_LIST, BaseParcelable(brandsList))
return fragment
To get the list:
val any = arguments?.getParcelable<BaseParcelable>(Constant.BRANDS_LIST).value
val list = any as ArrayList<Int>
putIntegerArrayList(Constant.BRANDS_LIST, array)
getIntegerArrayList(String key)
返回与给定键相关的值,如果不存在所需类型的映射,则返回空值。
所需类型的映射,则返回空值。
明确地与该键相关联。