Весь код адаптера
class NotesAdapter() : RecyclerView.Adapter<RecyclerView.ViewHolder>()
{
var listenerAdapter : AdapterOnItemClickListener? = null
private var list = emptyList<Notes>()
override fun getItemViewType(position: Int): Int {
return when(list[position]){
is BasicNote -> 0
is PrivateNote -> 1
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val inflater = LayoutInflater.from(parent.context)
return when(viewType){
0 -> BasicNotesViewHolder(itemView = inflater.inflate(R.layout.item_note,parent , false
),listenerAdapter!!)
else -> PrivateNotesViewHolder(itemView =
inflater.inflate(R.layout.item_private_note,parent,false),listenerAdapter!!)
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int){
when(holder){
is BasicNotesViewHolder -> holder.bind(list[position] as BasicNote)
is PrivateNotesViewHolder -> holder.bind(list[position] as PrivateNote)
}
}
override fun getItemCount(): Int = list.size
class BasicNotesViewHolder(itemView : View, private val listener : AdapterOnItemClickListener) :
RecyclerView.ViewHolder(itemView){
private val nameNote : TextView = itemView.view_note_name
fun bind(model : BasicNote){
nameNote.text = model.header
itemView.setOnClickListener {
listener.onItemClickListener(model)
}
}
}
class PrivateNotesViewHolder(itemView : View, private val listener : AdapterOnItemClickListener) :
RecyclerView.ViewHolder(itemView){
private val nameNote : TextView = itemView.view_private_note_name
fun bind(model : PrivateNote){
nameNote.text = model.header
itemView.setOnClickListener {
listener.onItemClickListener(model)
}
}
}
fun setList(list : List<Notes>){
this.list = list
notifyDataSetChanged()
}
}
ошибка
java.lang.NullPointerException at com.example.mynote.Adapters.NotesAdapter.onCreateViewHolder(NotesAdapter.kt:32) at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404) at android.view.View.layout(View.java:17050)
Скорее всего вы не назначили никакого listenerAdapter, и на момент вызова конструктора BasicNotesViewHolder он у вас имеет значение null.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
На данный момент задача такая: Класс Phonea) Создайте класс Phone, который содержит переменные number, model и weight
Когда я ставлю двоеточие после любого слова, которое даже не является какой-то переменной, код принимает этоДопустим, если напишу "gjsdlg:"...
для получения данных с сервера использую вот такой запрос: