Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
Первая строка объявляет переменную с именем exampleArrayList
, но на самом деле она еще не содержит примитивного значения. Вместо этого он содержит указатель (потому что типом является ArrayList<Model>
, который является ссылочным типом). Поскольку вы еще не сказали, на что указывать, Java устанавливает его на ноль, что означает «Я ни на что не указываю».
public Adapter(Context context, ArrayList<Model> arrayList) {
this.context = context;
this.arrayList = arrayList;
//this line you are assing array list from null object thats why you are getting **NullPointerException**
exampleArrayList = new ArrayList<>(exampleArrayList);
databaseHelper = new DatabaseHelper(context);
}
Solution
замените exampleArrayList = new ArrayList<>(exampleArrayList);
на exampleArrayList = new ArrayList<>()
или если вы хотите присвоить массив, который приходит из конструктора, тогда exampleArrayList = new ArrayList<>(arrayList);
или exampleArrayList = arrayList
Edit 2
private void showRecord() {
adapter = new Adapter(MainActivity.this,
databaseHelper.getAllData(Constants.C_TAG + " DESC"));
mRecyclerView.setAdapter(adapter);
}
Второе исключение bcz из вас объявлено объектом адаптера глобально, но вы локально создаете объект адаптера в методе showRecord, поэтому глобальный объект адаптера равен нулю, и вы получаете доступ к глобальному объекту, и вы получаете исключение