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 всегда печатает значение...