Как я могу обновить поле ListItem?
У меня есть следующие классы POJO и ViewModel. В настоящее время я получаю полный список из объекта LiveData, а затем обновляю его данные, затем заново устанавливаю значение объекта LiveData, но я не думаю, что это правильный способ сделать это, потому что обновить только название одной книги, которую я имею сбросить полный объект LiveData.
Любое другое предложение или Хорошая практика, чтобы сделать это правильно?
public class Book {
private long id;
private String name;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class BookProvider extends AndroidViewModel {
private final MutableLiveData<List<Book>> booksData;
public BookProvider(@NonNull Application application) {
super(application);
booksData = new MutableLiveData<>();
}
public LiveData<List<Book>> getBooksData() {
return booksData;
}
public void updateBookName(int position, String name) {
final List<Book> books = booksData.getValue();
if (books != null && books.size() > position) {
books.get(position).setName(name);
}
booksData.setValue(books);
}
}