Есть абстрактный класс
public abstract class Adapter<T> {
public abstract T onCreateViewHolder(ViewGroup parent);
public abstract void onBindViewHolder(T holder, int position);
public abstract int getItemCount();
}
Использую его примерно так:
public class AdapterAudioList: Adapter<VListView> {
PlayList list;
public AdapterAudioList(PlayList list){
this.list = list;
}
public override VListView onCreateViewHolder(ViewGroup parent) {
return new VListView();
}
public override void onBindViewHolder(VListView holder, int position) {
holder.setLabel(list.getAudio(position).artist);
holder.setLabel2(list.getAudio(position).title);
}
public override int getItemCount() {
return 500;
}
}
Инициализирую
AdapterAudioList listx = new AdapterAudioList(list);
recyclerView1.setAdapter(listx);
private Adapter adapter;
public void setAdapter(Adapter adb) {
adapter = adb;
}
Вот сейчас всё не работает, я пробовал наследовать от пустого класса Adapter и кастовать его но получал null.
Вопрос, как всё правильно это сделать ?
Еще пробовал так делать, но всё равно не кастовалось, может я и не правильно кастовал)
public abstract class BaseElement :UserControl {}
public abstract class Adapter<T>:BaseElement {
public abstract T onCreateViewHolder(ViewGroup parent);
public abstract void onBindViewHolder(T holder, int position);
public abstract int getItemCount();
}