Я работал над проектом, который включает в себя категории и подкатегории. Проблема, которая у меня возникла, состоит в том, что, как только я нажимаю на категорию из списка, я получаю список подкатегорий, но я не могу найти способ получить указанный c идентификатор подкатегории. Каждый раз, когда я нажимаю на подкатегорию, в logcat я получаю O. Могу ли я попросить вас помочь мне с этим.
@get:GET("api/catsubcatresponse") //
val getcatsubcatresponse:Observable<List<CatSubCatResponse>> //
**catsubcatresponse**
class CatSubCatResponse {
// var categories_id:Int=0
// var categoriesName:String=""
var id: Int=0
var subCatName:String=""
}
SubCategoriesAdapter
class SubCategoriessAdapter(private val catSubCatResp: List<CatSubCatResponse>):
RecyclerView.Adapter<SubCategoriessViewHolder>() { //
//class SubCategoriessAdapter(private val catSubCatResp: List<Categories>):
RecyclerView.Adapter<SubCategoriessViewHolder>() { //
// companion object {
//
// var subCatAmount = SubCatAmount()
// var subCatAmountList: MutableList<Int> = mutableListOf<Int>()
//
// fun subCat() {
//
//
// }
//
// }
var subCatAmount = SubCatAmount()
// val subCatAmountList = ArrayList<SubCatAmount>()
var subCatAmountList: MutableList<Int> = mutableListOf<Int>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SubCategoriessViewHolder
{
val layoutInflater = LayoutInflater.from(parent?.context)
val cellForRow = layoutInflater.inflate(R.layout.sub_categories_item, parent,false)
// val cellForRow = layoutInflater.inflate(R.layout.categories_item, parent,false)
return SubCategoriessViewHolder(cellForRow)
}
override fun getItemCount(): Int {
Log.d("catSubCatList","catSubCatList" + catSubCatResp.size)
// var itemcount = subcategories.size
// subCatAmount.subcatamount = itemcount
// subCatAmountList.add(itemcount)
return catSubCatResp.size
}
override fun onBindViewHolder(holder: SubCategoriessViewHolder, position: Int) {
val catSubCatResponse = CatSubCatResponse()
// val catSubCatResponse = Categories()
// val subCategories = SubCategories()
// val cat = catList.get(position)
// val catsubcat = catSubCatList.get(position).subCategories?.get(0)?.subCatName
val subcat = catSubCatResp[position]
holder?.itemView.sub_categories_name.text = subcat.subCatName
// holder?.itemView.sub_categories_name.text = subcat.categoriesName
holder?.itemView.sub_categories_name.setOnClickListener {
println(catSubCatResponse.subCatName)
// println(catSubCatResponse.categoriesName)
}
// catSubCatResponse.id = subcat.id
// subCategories.id = subcat.id
// subcat.categories_id = catSubCatResponse.categories_id
catSubCatResponse.id = subcat.id
// println("catsubcatresponse-" + catSubCatResponse.id) //
println("catsubcatresponse-" + catSubCatResponse.id)
// holder?.view.categories_name.text = cat.categoriesName
// holder?.itemView.sub_categories_name.text = catsubcat.subCategories.get()
// val itemcount = subcategories.size
val itemcount = this.itemCount
// println("itemcount" + itemcount)
//
// for (i in 0..itemcount) {
//
// println("itemcount" + i)
//
// }
catSubCatResponse.id = itemcount //
// catSubCatResponse.id = itemcount //
holder.bindSubCatDetailss(catSubCatResponse)
holder.binSubCatDetails(subcat)
holder?.subcat = subcat
}
// inner class SubCategoriessViewHolder() {
//
//
// }
}
class SubCategoriessViewHolder(itemView: View, var subcat: CatSubCatResponse? = null, var
itemcount: CatSubCatResponse?=null): RecyclerView.ViewHolder(itemView),
View.OnClickListener{ //
//class SubCategoriessViewHolder(itemView: View, var subcat: Categories? = null, var
itemcount: Categories?=null): RecyclerView.ViewHolder(itemView), View.OnClickListener{ //
//class SubCategoriessViewHolder(itemView: View, var subcat: SubCategories? = null):
RecyclerView.ViewHolder(itemView), View.OnClickListener { //
lateinit var recyclerViewClickListener: RecyclerViewClickListener
val subCatAmount = SubCatAmount()
// var itemcount:Int?=0
// private var subCategoriess: SubCategories? = null
private var catSubCatResponse: CatSubCatResponse? = null
//private var catSubCatResponse: Categories? = null
// val subCatAmountList = ArrayList<SubCatAmount>()
var subCatAmountList: MutableList<Int> = mutableListOf<Int>()
val getcatsubcatresponse: MutableList<CatSubCatResponse> = ArrayList()
val subcatname = itemView.sub_categories_name
fun binSubCatDetails(subCatResponse: CatSubCatResponse) {
this.catSubCatResponse = subCatResponse
}
// fun binSubCatDetails(subCatResponse: Categories) {
//
// this.catSubCatResponse = subCatResponse
//
// }
fun bindSubCatDetailss(catResponse: CatSubCatResponse) {
this.catSubCatResponse = catResponse
}
// fun bindSubCatDetailss(catResponse: Categories) {
//
// this.catSubCatResponse = catResponse
// }
// fun bindItems(catResponse: CatSubCatResponse) = with (itemView) {
//
// sub_categories_name.text = catResponse.subCatName
// setOnClickListener { setOnClickListener { } }
//
// }
// fun binSubCatDetails(subCategories: SubCategories) {
//
// this.subCategoriess = subCategoriess
//
// }
override fun onClick(v: View?) {
recyclerViewClickListener.onClick(v, adapterPosition)
// println("Testt" + subcat?.categories_id) //
// println("Testt" + subcat?.id) //
}
init {
// val subcatname = itemView.findViewById(R.id.sub_categories_name) as TextView
// itemView.setOnClickListener { this }
itemView.setOnClickListener {
// val subcatamount = subCatAmountList
// val subcatamount = subcat?.categories_id
// println(subCatAmount.subcatamount)//
getcatsubcatresponse.size
// println("getcatsubcatresponse--" + this.catSubCatResponse?.categories_id)
//
println("getcatsubcatresponse--" + this.catSubCatResponse?.id) //
// for (i in 0 until subcatamount) {
// println("Test" + subcatamount)
//
// }
// println("Test" + subcat?.categories_id)
// println("SubCat" + subCatAmount.subcatamount)
}
}
}
ПодкатегорииДеятельность
private fun fetchData() {
// compositeDisposable.add(jsonApi.getcatsubcat
// compositeDisposable.add(jsonApi.getsubinfo
compositeDisposable.add(jsonApi.getcatsubcatresponse
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
// .subscribe({ catsubcat -> displayData( catsubcat)}, this::handleError)
// .subscribe({ subcategories -> displayData( subcategories)},
this::handleError)
.subscribe({ getcatsubcatresponse -> displayData( getcatsubcatresponse)},
this::handleError)
)
}
private fun displayData( getcatsubcatresponse:List<CatSubCatResponse>) { //
//private fun displayData( getcatsubcatresponse:List<Categories>) { //
// private fun displayData( getcatsubcatresponse:List<SubCategories>) {
// var info = getcatsubcatresponse.size
// println("getcatsubcatresponse-info-" + getcatsubcatresponse.size)
//
// val variable = "1"
// val list: MutableList<String> = ArrayList()
// val subCatAmount: MutableList<SubCatAmount> = ArrayList()
// subCatAmount =+ info
//
// // val info = getcatsubcatresponse.size
//
// println("getcatsubcatresponse-info" + info)
// val gson = Gson()
//
// gson.fromJson(gson, CatSubCat::class.java)
// val catsubcatsize = catsubcat.size
val getcatsubcatresponsesize = getcatsubcatresponse.size
//
// val subcatname =catsubcat.get(1).subCategories?.get(1)?.subCatName
// val subcatname = subcategories.get(0).subCatName
val subcatname = getcatsubcatresponse.get(0).subCatName
// val subcatname = getcatsubcatresponse.get(0).categoriesName
// Log.d("catsubcat","catsubcat" + catsubcat)
Log.d("subcatname","subcatname" + subcatname)
println("subcatname" + subcatname)
Log.d("getcatsubcatresponse-size","getcatsubcatresponse-size" + getcatsubcatresponsesize)
// Log.d("catsubcatsize","catsubcatsize" + catsubcatsize)
// categories_recycler_view.layoutManager = LinearLayoutManager(this)
sub_categories_recycler_view.layoutManager = LinearLayoutManager(this)
// categories_recycler_view.adapter = CategoriesAdapter(categories, this)
// categories_recycler_view.adapter = CategoriessssAdapter(categories,
requireContext())
// categories_recycler_view.adapter = CategoriessssAdapter(catsubcat)
// sub_categories_recycler_view.adapter = SubCategoriessAdapter(catsubcat)
// sub_categories_recycler_view.adapter = SubCategoriessAdapter(subcategories)
sub_categories_recycler_view.adapter = SubCategoriessAdapter(getcatsubcatresponse) //
// sub_categories_recycler_view.adapter = SubCategoriessssAdapter(getcatsubcatresponse)
// SubCategoriessViewHolder(getcatsubcatresponse)
}