【问题标题】:kotlin.NotImplementedError: An operation is not implemented: not implementedkotlin.NotImplementedError: An operation is not implemented: 未实现
【发布时间】:2019-04-01 09:12:49
【问题描述】:

服务器JSON使用retrofit2rxjava2解析数据。当转到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
        }
    }
}

【问题讨论】:

  • 我认为我的回答应该可以解决问题。如果有帮助,请采纳。 :)

标签: kotlin retrofit2 rx-java2 android-recyclerview


【解决方案1】:

原因很简单:当你用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
        }
    }
}

【讨论】:

    猜你喜欢
    • 2021-03-13
    • 2018-11-03
    • 2019-03-11
    • 2020-08-15
    • 2019-03-25
    • 1970-01-01
    • 2022-11-20
    • 2020-08-07
    相关资源
    最近更新 更多