如何使用bottomnavigation和recyclerview导航数据并将数据从一个片段传递到另一个片段?

时间:2020-06-09 00:43:01

标签: android android-fragments kotlin android-recyclerview android-architecture-navigation

我正在使用导航底部,在“主页”片段中,我有一个带有cardview(“ title”,“ description”,“ image”)的recyclerview,我希望当我单击某个元素时可以导航到另一个片段,并将此项的数据传递给homefragment2。我是科特林的新人,我不知道该怎么办。谢谢。

HomeFragment类:Fragment(){

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

    val layout=inflater.inflate(R.layout.fragment_home, container, false)

    val item = mutableListOf<Model>()


    item.add(Model("Imagen_1","Imagen_1", R.drawable.dia))
    item.add(Model("Imagen_2","Imagen_2", R.drawable.dia))
    item.add(Model("Imagen_3","Imagen_3", R.drawable.dia))
    item.add(Model("Imagen_4","Imagen_4", R.drawable.dia))
    item.add(Model("Imagen_5","Imagen_5", R.drawable.dia))
    item.add(Model("Imagen_6","Imagen_6", R.drawable.dia))
    item.add(Model("Imagen_7","Imagen_7", R.drawable.dia))


    val recycler = layout.findViewById<RecyclerView>(R.id.recyclerview)




    val adapter = MainAdapter(item as ArrayList<Model>, requireActivity().applicationContext)
    recycler.layoutManager = GridLayoutManager(requireActivity().applicationContext,1)
    recycler.adapter = adapter



    return layout


}

}

MainAdapter类(data:ArrayList,var context:Context):RecyclerView.Adapter(){

var data:List<Model>

init {
    this.data=data
}

class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){

    var title:TextView
    var descripcion:TextView
    var image:ImageView

    init {
        title=itemView.findViewById(R.id.tittle)
        descripcion=itemView.findViewById(R.id.descripcion)
        image=itemView.findViewById(R.id.Image)

    }

}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
   val layout=LayoutInflater.from(context).inflate(R.layout.row,parent,false)
    return ViewHolder(layout)
}

override fun getItemCount(): Int {
    return data.size
}


override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    holder.title.text = data[position].title
    holder.descripcion.text = data[position].descripcion
    holder.image.setImageResource(data[position].image)

    holder.itemView.setOnClickListener {


    }


}

}

类模型(var title:String ?, var descripcion:String?,var image:Int)

nothing here

HomeFragment2类:Fragment(){

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_home2, container, false)


}

}

0 个答案:

没有答案