【发布时间】:2020-09-25 22:38:58
【问题描述】:
科特林 嗨,我想知道如何从 recyclerview 打开片段(我想要汽车项目打开 cars_fragment,艺术项目打开 art_fragment......)。
非常感谢您的帮助!谢谢!
这是我的适配器,我没有添加 clicklistner,因为我在运行代码时遇到错误
类别适配器
class CategoriesAdapter(var context: CategoriesFragment, var arrayList: ArrayList<CategoriesModel>) : RecyclerView.Adapter<CategoriesAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
val itemHolder = LayoutInflater.from(parent.context)
.inflate(R.layout.categorie_gridlayout, parent, false)
return ItemHolder(itemHolder)
}
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
val categoriesModel: CategoriesModel = arrayList[position]
holder.images.setImageResource(categoriesModel.imagesGrid!!)
holder.titles.text = categoriesModel.textGrid
}
override fun getItemCount(): Int {
return arrayList.size
}
class ItemHolder (itemView : View) : RecyclerView.ViewHolder(itemView) {
var images = itemView.findViewById<ImageView>(R.id.categories_images)
var titles = itemView.findViewById<TextView>(R.id.categories_title)
}
}
这是我的 Categories_fragment
Categories_fragment
class CategoriesFragment : Fragment() {
private var recyclerView : RecyclerView? = null
private var gridLayoutManger : GridLayoutManager? = null
private var arrayList : ArrayList<CategoriesModel>? = null
private var categoriesAdapter : CategoriesAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val rootView = inflater.inflate(R.layout.fragment_categories, container, false)
recyclerView = rootView.findViewById(R.id.categories_recycler) as RecyclerView
gridLayoutManger = GridLayoutManager(context,2, LinearLayoutManager.VERTICAL, false)
recyclerView?.layoutManager = gridLayoutManger
recyclerView?.setHasFixedSize(true)
arrayList = ArrayList()
arrayList = setDataInList()
categoriesAdapter = CategoriesAdapter(this,arrayList!!)
recyclerView?.adapter = categoriesAdapter
return rootView
}
private fun setDataInList() : ArrayList<CategoriesModel>{
val items : ArrayList<CategoriesModel> = ArrayList()
items.add(CategoriesModel(R.drawable.drawable_cars, "CARS"))
items.add(CategoriesModel(R.drawable.drawable_abstract, "ABSTRACT"))
items.add(CategoriesModel(R.drawable.drawable_city, "CITY"))
items.add(CategoriesModel(R.drawable.drawable_nature, "NATURE"))
items.add(CategoriesModel(R.drawable.drawable_3d, "3D"))
items.add(CategoriesModel(R.drawable.drawable_space, "SPACE"))
items.add(CategoriesModel(R.drawable.drawable_love, "LOVE"))
items.add(CategoriesModel(R.drawable.drawable_minimalist, "MINIMLAIST"))
items.add(CategoriesModel(R.drawable.drawable_art, "ART"))
items.add(CategoriesModel(R.drawable.drawable_sport, "SPORT"))
items.add(CategoriesModel(R.drawable.drawable_anime, "ANIME"))
items.add(CategoriesModel(R.drawable.drawable_typography, "TYPOGRAPHY"))
items.add(CategoriesModel(R.drawable.drawable_music, "MUSIC"))
items.add(CategoriesModel(R.drawable.drawable_4k, "4K"))
return items
}
}
【问题讨论】:
标签: kotlin android-recyclerview fragment adapter