2017-07-11 26 views
0

Ich habe begonnen, auf Android-Architektur-Komponente vor kurzem eingeführt zu arbeiten.Android Architechture Komponente LiveData Daten ändern

DataLiveList.getPhotoDataList().observe(PhotosFragmentNew.this, new Observer<List<PhotoDataLive>>() { 
     @Override 
     public void onChanged(@Nullable List<PhotoDataLive> photoDataLives) { 

     } 

    }); 

Mein Problem ist, ich möchte nur das letzte hinzugefügte Element nicht die Liste aller Elemente in der Datenbank, die zweite möchte ich Auto-ID für neues Modell erzeugt wissen, was das Beste Art und Weise, dass die ID zu bekommen, während Element Einfügen .

+0

die Liste beachten ... halten es sortiert ... erhalten die erste (oder letzte). oder ... veröffentliche das letzte als LiveData anstelle einer Liste ... oder ... so viele andere Möglichkeiten, wie du das angehen könntest, und es hat mit LiveData per se nicht viel zu tun. Außerdem muss für die "autogenerated id" ein '@PrimaryKey (autoGenerate = true)' sein und ... lies es einfach! –

+0

Danke Yup bekam es .. die Antwort zu posten. – AbdulMueed

Antwort

0

ich tat es falsch wie meine Methode

DataLiveList.getPhotoDataList() 

eine Liste zurück, ist, dass meine DAO Klasse hat Abfrage select * from Photomodel, ich hatte gerade eine andere Methode in DAO Klasse schreiben

@Query("Select * from photomodel order by Id desc limit 1") 
LiveData<photomodel> getLatestAddedItem(); 

und jetzt, wenn ich

folgende Änderung
DataLiveList.getPhotoDataList().observe(PhotosFragmentNew.this, new Observer<List<PhotoDataLive>>() { 
    @Override 
    public void onChanged(@Nullable List<PhotoDataLive> photoDataLives) { 

    } 

}); 

Um

DataLiveList.getLatestAddedItem().observe(PhotosFragmentNew.this, new Observer<PhotoDataLive>() { 
    @Override 
    public void onChanged(@Nullable PhotoDataLive photoDataLives) { 

    } 

}); 

Dies führt zu dem, was ich wollte

Verwandte Themen