Я новичок в андроиде. Я работаю над операциями 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))
}
}
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
}
}
что является фатальным исключением, вы можете предоставить журнал трассировки стека?
Спасибо @HarisDautović. Как я могу предоставить вам демонстрационный проект и где?
Я не понимаю вопроса @Zain. извините я новичок в андроиде
Когда вы запускаете проект на устройстве и происходит сбой. В студии Android можно предоставить отчет о сбое. Вкладка logcat на нижней панели
Я попытался решить ее, и мне это удалось. Я создаю новый класс для объявления элементов пользовательского интерфейса, но перед тем, как объявить, в макете установлен метод содержимого, который добавляет заметки в базу данных, после чего приложение работает нормально. Это класс:
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)
}
}
Ахмад, если вы можете предоставить демонстрационный проект, я могу помочь с отладкой.