相关文章推荐
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)

  • 返回与给定键相关的值,如果不存在所需类型的映射,则返回空值。 所需类型的映射,则返回空值。 明确地与该键相关联。

  •  
    推荐文章