Android Studio / LiveData / Wyciągnięcie danych

0

Odpalam sobie taki przykład RecyclerListView: https://codinginflow.com/tutorials/android/room-viewmodel-livedata-recyclerview-mvvm/part-10-listadapter
i chcę z zewnętrznego zdarzenia sprawdzić dane z mojej bazy w formie LiveData.

Nie potrafię z LiveData wyciągnąć ilość rekordów i sprawdzić każdy pod względem zgodności - poniżej daje kod jak to rozumiem lecz nie działa bo nie rzutuje się.
Czy idzie po prostu też w pętli wyciągnąć dane z LiveData?

    private NoteRepository repository;
    private LiveData<List<Note>> allNotes;
    private List<Note> notes = new ArrayList<>();
    
    public NoteSync(Context applicationContext) {
        repository = new NoteRepository(getApplication(applicationContext));
        allNotes = repository.getAllNotes();

        notes = allNotes.getValue(); //jak to przypisać
        
        for (i=0; i<notes.size(); i++) {
          Node currentNode = notes.get(i);
          if (currentNode.getTitle == "Moja nazwa") {
            //... wykonaj coś tam ...
          }
        }
    }

0
  1. W javie nie piszę od kilku lat ale coś takiego:
List<Note> tempNotes = allNotes.getValue(); 
notes.addAll(tempNotes)

Ważne, LiveData.Value może być null'em
Więc:

List<Note> tempNotes = allNotes.getValue(); 
if (tempNotes != null) {
    notes.addAll(tempNotes)
}

W dodatku nie napisałeś co zwraca getAllNotes()

W dodatku LiveData służy głownie do reaktywnego programowania -> Observer Pattern

2.W dodatku złe porównanie stringa. Zamiast:

if (currentNode.getTitle == "Moja nazwa") {

powinno być

if (currentNode.getTitle.equals("Moja nazwa")) {

Poczytaj o porównaniu referencji vs porównaniu wartości

1 użytkowników online, w tym zalogowanych: 0, gości: 1