Хочу использовать RecycleView в своём приложении. Читал популярные мануалы и сделал практически точную копию в своём приложении, но всё равно не работает. Данные берутся из Cursor в БД. Из курсора я перегоняю их в свой List items=new ArrayList<>(); Но при запуске всё равно пишет ошибку . Вот листинг адаптера и главного окна
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {
List<MyItem> items;
RVAdapter(List<MyItem> items){
this.items = items;
}
@Override
public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardview, viewGroup, false);
PersonViewHolder pvh = new PersonViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(RVAdapter.PersonViewHolder personViewHolder, int i) {
personViewHolder.personName.setText(items.get(i).name);
personViewHolder.personAge.setText(items.get(i).cell);
}
@Override
public int getItemCount() {
return items.size();
}
public static class PersonViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView personName;
TextView personAge;
PersonViewHolder(View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cv);
personName = (TextView)itemView.findViewById(R.id.person_name);
personAge = (TextView)itemView.findViewById(R.id.person_cell);
}
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
}
Это с главной
List<MyItem> items=new ArrayList<>();
final Cursor cursor = mSqLiteDatabase.query("Kroliki", null, null, null, null, null, null ) ;
if(cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex(DBHelper.IDENT));
int cell = cursor.getInt(cursor.getColumnIndex(DBHelper.Cell));
items.add(new MyItem(name, cell));
}while (cursor.moveToNext());
}
cursor.close();
RecyclerView rv = (RecyclerView)findViewById(R.id.rv);
rv.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(this);
rv.setLayoutManager(llm);
RVAdapter adapter = new RVAdapter(items);
rv.setAdapter(adapter);
Не могу понять. Вроде данные есть . но всё равно ошибку выкидывает.