2017-12-26 28 views
0
class CholesterolPagingFragment: Fragment() { 

    companion object { 
     fun newInstance(): CholesterolPagingFragment { 
      val args = Bundle() 
      val fragment = CholesterolPagingFragment() 
      fragment.arguments = args 
      return fragment 
     } 
    } 

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 
     val view = inflater.inflate(R.layout.fragment_paging_cholesterol, container, false) 

     return view 
    } 

} 

단편. 비록 내가 객체의 목록 (예 : List<Human>)을이 조각에 전달하는 방법을 이해할 수는 없지만. Bundle()으로 시도했지만 올바른 방법을 찾을 수 없습니다. 다음과 같이전달 목록 내가 조각을 초기화 코 틀린</strong><strong>에 위의 코드를 작성했다

+0

위의 코드에 List를 전달하는 위치는 어디입니까? –

답변

5

당신은 번들ParcelableArrayListList<Human>을 전달할 수 있습니다

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 

    val args = arguments 
    var myList : ArrayList<Human> = args.getParcelableArrayList<Human>("list") 
} 

Human 데이터 클래스에 Parcelable 구현을 수행합니다 :

data class Human(val name: String, val phone: String) : Parcelable { 
    constructor(parcel: Parcel) : this(
      parcel.readString(), 
      parcel.readString()) { 
    } 

    override fun writeToParcel(dest: Parcel?, flags: Int) { 
     TODO("not implemented") //To change body of created functions use File | Settings | File Templates. 
    } 

    override fun describeContents(): Int { 
     TODO("not implemented") //To change body of created functions use File | Settings | File Templates. 
    } 

    companion object CREATOR : Parcelable.Creator<Human> { 
     override fun createFromParcel(parcel: Parcel): Human { 
      return Human(parcel) 
     } 

     override fun newArray(size: Int): Array<Human?> { 
      return arrayOfNulls(size) 
     } 
    } 
} 

companion object { 
    fun newInstance(myList : ArrayList<Human>): MyFragment { 
     val args = Bundle() 
     args.putParcelableArrayList("list",myList); 
     val fragment = MyFragment() 
     fragment.arguments = args 
     return fragment 
    } 
} 

데이터를 검색하려면

+0

타입 불일치 에러는'Required : java.util.ArrayList ! '하지만'Found : kotlin.collections.ArrayList ' – kokilayaa

+0

Human 클래스에서 Parcelable 구현을 수행하십시오. 지금 내 편집 된 답변을 확인하십시오. –