kotlin.NotImplementedError: Операция не реализована: не реализована - PullRequest
2 голосов
/ 01 апреля 2019

Сервер JSON Разбор данных с использованием retrofit2 и rxjava2.Данные получаются и успешно сохраняются в Списке, когда переходят в класс CompanyAdapter, затем выдают вышеуказанную ошибку.

MainActivity.kt

 private fun fetchData(){

        val retrofit = APIClient.apIClient
        if (retrofit != null) {
            api = retrofit.create(APIInterface::class.java)
        }
        compositeDisposable!!.add(api.getCompanyData()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe{displayData(it.company)
                }
        )
  }

    private fun displayData(companyList : List<Company>) {

        adapter = CompanyAdapter(this, companyList)
        rvCompany.adapter = adapter

    }

ComnyAdapter.kt

class CompanyAdapter(internal var context: Context, internal var companyList: List<Company>)
    :RecyclerView.Adapter<CompanyAdapter.CompanyViewHolder>()
{
    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): CompanyViewHolder {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

        val itemView = LayoutInflater.from(p0.context).inflate(R.layout.list_view_item,p0,false)

        return CompanyViewHolder(itemView)
    }

    override fun getItemCount(): Int {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        return companyList.size
    }

    override fun onBindViewHolder(p0: CompanyViewHolder, p1: Int) {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.


        p0.bindModel(companyList[p1])
    }

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

        val radioButton : RadioButton = itemView.findViewById(R.id.rbCompanyName)

        fun bindModel(company: Company){

            radioButton.text = company.Cmp_Name
        }
    }
}

1 Ответ

3 голосов
/ 01 апреля 2019

Причина проста: когда вы выполняете строку с TODO, она выдает Not Implemented Exception. Просто удалите все TODO из вашего кода:

class CompanyAdapter(internal var context: Context, internal var companyList: List<Company>)
    :RecyclerView.Adapter<CompanyAdapter.CompanyViewHolder>()
{
    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): CompanyViewHolder {
        val itemView = LayoutInflater.from(p0.context).inflate(R.layout.list_view_item,p0,false)

        return CompanyViewHolder(itemView)
    }

    override fun getItemCount(): Int {

        return companyList.size
    }

    override fun onBindViewHolder(p0: CompanyViewHolder, p1: Int) {
        p0.bindModel(companyList[p1])
    }

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

        val radioButton : RadioButton = itemView.findViewById(R.id.rbCompanyName)

        fun bindModel(company: Company){
            radioButton.text = company.Cmp_Name
        }
    }
}
...