groovy
dependencies {
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07'
implementation 'androidx.compose.ui:ui-tooling-preview:1.0.0-alpha09'
}
public class ShoppingCartActivity extends AppCompatActivity implements LifecycleOwner {
private LifecycleRegistry mLifecycleRegistry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shopping_cart);
mLifecycleRegistry = new LifecycleRegistry(this);
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
initShoppingCart();
}
@Override
public Lifecycle getLifecycle() {
return mLifecycleRegistry;
}
private void initShoppingCart() {
setContent {
ShoppingCartScreen()
}
}
}
public class ShoppingCartViewModel extends ViewModel {
private MutableLiveData<List<Product>> mProductsLiveData;
public ShoppingCartViewModel() {
mProductsLiveData = new MutableLiveData<List<Product>>();
loadProducts();
}
public LiveData<List<Product>> getProductsLiveData() {
return mProductsLiveData;
}
private void loadProducts() {
}
}
@Composable
fun ShoppingCartScreen(viewModel: ShoppingCartViewModel = viewModel()) {
val products by viewModel.getProductsLiveData().observeAsState(emptyList())
LazyColumn {
items(products) { product ->
ProductItem(product)
}
}
}
@Composable
fun ProductItem(product: Product) {
}