Android, база данных комнат, AsyncTask, Livedata

Я учился кодировать самостоятельно, и я действительно застрял здесь... Я пытаюсь получить данные из комнаты базы данных, которыми я могу манипулировать, и на их основе создать список живых данных, который можно наблюдать. Вот код с проблемой:

public class Access {

private dao;
private MutableLiveData<List<Element>> currentItem;
private MutableLiveData<List<Element>> nextItem;
private static int cursor = 1;

// THE CONSTRUCTOR

public Access(Application application){
    MyDatabase myDatabase = MyDatabase.getInstance(application);
    Dao = myDatabase.dao();
    try {
        currentItem = new GetFirstItem(dao).execute().get();
    } catch (ExecutionException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

 private static class GetFirstItem extends AsyncTask<Void, Void, MutableLiveData<List<Element>>> {

    List<Element> temporaryResult = new ArrayList<>();
    MutableLiveData<List<Element>> result = new MutableLiveData<>();
    Dao dao;
    boolean loopCheck = true;
    String checkedName;
    Element checkedElement;

    private GetFirstItem(Dao dao) {this.dao =dao;}
    @Override
    protected synchronized MutableLiveData<List<Element>> doInBackground(Void... voids){
        while(loopCheck == true){
            checkedElement = dao.getCurrentElement(cursor);
            checkedName = dao.getCurrentElementName(cursor);
            System.out.println(checkedElement);
            System.out.println(checkedName);
            if(!checkedName.contains("X")){
                temporaryResult.add(checkedElement);
                cursor = cursor+1;
                System.out.println("DONE ONCE");
            }
            else{
                temporaryResult.add(checkedElement);
                cursor = cursor +1;
                loopCheck =false;
                System.out.println("DONE ONCE");
            }
        }
        result.postValue(temporaryResult);
        return result;
    }
}

И ошибка: вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод 'boolean java.lang.String.contains(java.lang.CharSequence)' для ссылки на пустой объект...

Я знаю, что такое исключение нулевого указателя... я не знаю, почему это значение равно нулю, учитывая, что Sysout всегда печатает значение...

0 ответов

Другие вопросы по тегам