我正在使用导航底部,在“主页”片段中,我有一个带有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)
}
}