Hello Friends,
Today I am going to share me small tutorial of LiveData with Data Binding.
-What is LiveData?
LiveData is an observable data holder class that can be observed within
a given lifecycle. It lets the components in your app, usually the UI,
observe LiveData objects for changes.
-The advantages of using LiveData
a. Add below dependency in app/build.gradle
b. UserViewModel.java : Creating a ViewModel class
In Activity class we creates an observer which updates the ui.
Next step is observe the livedata, passing in the activity as a LifecycleOwner and the Observer.
The complete code,
Download the complete code here
Hope this will helps someone.
Enjoy Coding... :)
Today I am going to share me small tutorial of LiveData with Data Binding.
-What is LiveData?
LiveData is an observable data holder class that can be observed within
a given lifecycle. It lets the components in your app, usually the UI,
observe LiveData objects for changes.
-The advantages of using LiveData
- Ensures your UI matches your data state
- No memory leaks
- No crashes due to stopped activities
- No more manual lifecycle handling
- Always up to date data
- Proper configuration changes
- Sharing resources
-How to use it in our app
a. Add below dependency in app/build.gradle
- implementation "android.arch.lifecycle:extensions:1.1.1"
b. UserViewModel.java : Creating a ViewModel class
- package com.android.developer.livedatademo.model;
- import android.arch.lifecycle.MutableLiveData;
- import android.arch.lifecycle.ViewModel;
- /**
- * Created by mukesh on 13/6/18.
- */
- public class UserViewModel extends ViewModel {
- // Create a LiveData with a String
- private MutableLiveData<user> mUser;
- public MutableLiveData<user> getUser() {
- if (mUser == null) {
- mUser = new MutableLiveData<user>();
- }
- return mUser;
- }
- }
- </user></user></user>
In Activity class we creates an observer which updates the ui.
- final Observer<user> nameObserver = new Observer<user>() {
- @Override
- public void onChanged(@Nullable final User user) {
- // Update the UI, in this case, a TextView.
- binding.tvUserName.setText(user.getName());
- }
- };
- </user></user>
Next step is observe the livedata, passing in the activity as a LifecycleOwner and the Observer.
- userViewModel.getUser().observe(this, nameObserver);
- binding.btnClick.setOnClickListener(this);
The complete code,
- package com.android.developer.livedatademo;
- import android.arch.lifecycle.Observer;
- import android.arch.lifecycle.ViewModelProviders;
- import android.databinding.DataBindingUtil;
- import android.support.annotation.Nullable;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import com.android.developer.livedatademo.databinding.ActivityMainBinding;
- import com.android.developer.livedatademo.model.User;
- import com.android.developer.livedatademo.model.UserViewModel;
- public class MainActivity extends AppCompatActivity implements View.OnClickListener {
- UserViewModel userViewModel;
- ActivityMainBinding binding;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
- // Get the ViewModel.
- userViewModel = ViewModelProviders.of(this).get(UserViewModel.class);
- // Create the observer which updates the UI.
- final Observer<user> nameObserver = new Observer<user>() {
- @Override
- public void onChanged(@Nullable final User user) {
- // Update the UI, in this case, a TextView.
- binding.tvUserName.setText(user.getName());
- }
- };
- // Observe the LiveData, passing in this activity as the LifecycleOwner and the observer.
- userViewModel.getUser().observe(this, nameObserver);
- binding.btnClick.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- User user = new User();
- user.setName("Mukesh Yadav");
- user.setAge("25");
- userViewModel.getUser().setValue(user);
- }
- }
- </user></user>
Download the complete code here
Hope this will helps someone.
Enjoy Coding... :)
0 comments:
Post a Comment