Ich möchte eine Produktliste in meiner Android-Anwendung mit Android neue Architektur-Komponenten zeigen. Ich habe eine Pojo Klasse Products
wie unten genannt:Android LiveData Änderung prob
public class Products {
private List<ProductDetails> products = null;
private Integer onSaleCount;
private Integer total;
private Integer page;
.........................
}
Der Webservice gibt die Liste mit Paginierung:
@GET("/products/")
Call<Products> getProducts(@Query("page") int page)
jede Produktliste Anruf Also, ich bin immer einen Satz Produktliste mit anderen Daten. Ich habe bereits definierte Methode die gleiche in ProductListRepository
zu nennen:
public class ProductListRepository {
@Inject
ProductService mProductService;
public Products getProductList(int pageNo) {
.......................
..................
}
}
Aber ich bin vor Problem der Livedata in ProductViewModel
einzustellen, weil ich die Liste der ProductDetails
mit älteren zusammenführen möchten und auch den Wert des Updates andere Variablen in Products
wie onSaleCount
, pageNo
.
public class ProductListViewModel extends ViewModel {
private final ProductListRepository mProductListRepository;
private MediatorLiveData<Products> mProducts;
public void getProductList(int pageNo) {
Products products = mProductListRepository.getProductList(pageNo);
if(products==null){
mProducts.setValue(products);
}else{
// **How to add old List and new List and set it to LiveData**
}
return mProducts;
}
}
Kann mir jemand helfen?
Was ist die Idee hinter "MediatorLiveData"? Es ist nicht klar aus dem Code. –
@Eugene Krivenja Ich denke, um die LiveData zu ändern, brauche ich MediatorLiveData. Wenn es nicht erforderlich ist, lassen Sie mich bitte die Lösung wissen. –
nur zu ändern, 'MutableLiveData' ist genug. –