У меня есть список, который используется двумя отдельными классами. Однако мне нужно, чтобы этот список был определен в одном из моих методов onDataChange, и это вызывает у меня некоторые проблемы. В начале моего класса мой список определен так:
public List<String> openGames;
У меня есть это, так что мой класс RecyclerView может использовать его. Затем я инициализирую свой список в методе onDataChange, как этот
public void updateUI(final ListCallback callBack) {
FCGames.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
numGames = (int) dataSnapshot.getChildrenCount();
openGames = new ArrayList<>();
.
.
.
Эти точки есть лишь для того, чтобы сказать, что кода больше, но я не думаю, что это необходимо для этой проблемы.
В классе MyRecyclerViewer этот список используется, и при открытии Activity он пытается получить размер списка следующим образом:
@Override
public int getItemCount() {
return mData.size();
}
Но так как список не определен до тех пор, пока в моем приложении не произойдут некоторые вещи, например, вызывается метод onDataChange, это вызывает ошибку:
Попытка вызова метода интерфейса 'int java.util.List.size ()' для ссылки на пустой объект
Я знаю, что причина этого в том, что список не определен до того, как размер списка будет взят.
Итак, я попытался обойти это, добавив проверку нулевого размера списка, когда он принимает размер списка, и это избавляет от ошибки, но из-за этого весь мой RecyclerViewer вообще не работает
Есть ли обходной путь для этого?