android kotlin категории подкатегорий - PullRequest
0 голосов
/ 18 апреля 2020

Я работал над проектом, который включает в себя категории и подкатегории. Проблема, которая у меня возникла, состоит в том, что, как только я нажимаю на категорию из списка, я получаю список подкатегорий, но я не могу найти способ получить указанный 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)
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...