Фатальное исключение: основной в адаптере (адаптер просмотра Recycler)

Я новичок в андроиде. Я работаю над операциями SQL CRUD. Приложение работает без проблем, но в моем адаптере я просто заменяю метод bindItems другим способом инициализации элементов пользовательского интерфейса, чтобы использовать переменные в операции обновления и удаления.

К сожалению, приложение останавливается и выдает мне ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основная ошибка.

Я не знаю, как это исправить, пожалуйста, помогите мне.

Это адаптер с методом bindItems (приложение работает нормально)

class AdapterRecord (): RecyclerView.Adapter<AdapterRecord.MyViewHolder>()  {


    private var context: Context? = null
    private var notesList: List<Note>? = null

    constructor(context: Context?, notesList: List<Note>?) : this() {
        this.context = context
        this.notesList = notesList
    }


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

       fun bindItems(note: Note) {
           val tvTitle = itemView.findViewById(R.id.tvTitle) as TextView
           val tvDescription = itemView.findViewById(R.id.tvDescription) as TextView
           tvTitle.text = note.name
           tvDescription.text = note.description

        }

    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.note_ticket, parent,false)

        return MyViewHolder(itemView)


    }

    override fun getItemCount() : Int {
        return notesList!!.size

    }



    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.bindItems(notesList!!.get(position))



    }
}
And this is the adapter without bindItems (The app stopped working with exception)

class AdapterRecord (): RecyclerView.Adapter<AdapterRecord.MyViewHolder>()  {


    private var context: Context? = null
    private var notesList: List<Note>? = null

    constructor(context: Context?, notesList: List<Note>?) : this() {
        this.context = context
        this.notesList = notesList
    }


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


        val tvTitle = itemView.findViewById<TextView>(R.id.tvTitle)
        val tvDescription  = itemView.findViewById<TextView>(R.id.tvDescription)

     

    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.note_ticket, parent,false)

        return MyViewHolder(itemView)


    }

    override fun getItemCount() : Int {
        return notesList!!.size

    }



    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {



        val note = notesList!!.get(position)

            //get data
            val id = note.id
            val name = note.name
            val description = note.description

            //set data

            holder.tvTitle.text = name
            holder.tvDescription.text = description





    }
}

Ахмад, если вы можете предоставить демонстрационный проект, я могу помочь с отладкой.

Haris 26.12.2020 18:50

что является фатальным исключением, вы можете предоставить журнал трассировки стека?

Zain 26.12.2020 19:00

Спасибо @HarisDautović. Как я могу предоставить вам демонстрационный проект и где?

Ahmad Hammad 27.12.2020 08:35

Я не понимаю вопроса @Zain. извините я новичок в андроиде

Ahmad Hammad 27.12.2020 08:47

Когда вы запускаете проект на устройстве и происходит сбой. В студии Android можно предоставить отчет о сбое. Вкладка logcat на нижней панели

Zain 27.12.2020 11:32
0
5
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался решить ее, и мне это удалось. Я создаю новый класс для объявления элементов пользовательского интерфейса, но перед тем, как объявить, в макете установлен метод содержимого, который добавляет заметки в базу данных, после чего приложение работает нормально. Это класс:

class UiElements : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_note)


        val tvTitle = findViewById<TextView>(R.id.tvTitle)
        val tvDescription  = findViewById<TextView>(R.id.tvDescription)
        val moreBtn = findViewById<ImageButton>(R.id.moreBtn)


    }
        }

Другие вопросы по теме