Created
October 7, 2018 16:21
-
-
Save OrenBochman/53c48b1606dfd8dbd120f9cbd5c96741 to your computer and use it in GitHub Desktop.
LiveData
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private MutableLiveData<String> mCurrentName; | |
public MutableLiveData<String> getCurrentName() { | |
if (mCurrentName == null) { | |
mCurrentName = new MutableLiveData<String>(); | |
} | |
return mCurrentName; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class NameActivity extends AppCompatActivity { | |
private NameViewModel mModel; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
// Other code to setup the activity... | |
// Get the ViewModel. | |
mModel = ViewModelProviders.of(this).get(NameViewModel.class); | |
// Create the observer which updates the UI. | |
final Observer<String> nameObserver = new Observer<String>() { | |
@Override | |
public void onChanged(@Nullable final String newName) { | |
// Update the UI, in this case, a TextView. | |
mNameTextView.setText(newName); | |
} | |
}; | |
// Observe the LiveData, passing in this activity as the LifecycleOwner and the observer. | |
mModel.getCurrentName().observe(this, nameObserver); | |
} | |
//updating the LD | |
mButton.setOnClickListener(new OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
String anotherName = "John Doe"; | |
mModel.getCurrentName().setValue(anotherName); | |
} | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyViewModel extends ViewModel { | |
private MutableLiveData<List<User>> users; | |
public LiveData<List<User>> getUsers() { | |
if (users == null) { | |
users = new MutableLiveData<List<User>>(); | |
loadUsers(); | |
} | |
return users; | |
} | |
private void loadUsers() { | |
// Do an asynchronous operation to fetch users. | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyActivity extends AppCompatActivity { | |
public void onCreate(Bundle savedInstanceState) { | |
// Create a ViewModel the first time the system calls an activity's onCreate() method. | |
// Re-created activities receive the same MyViewModel instance created by the first activity. | |
MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class); | |
model.getUsers().observe(this, users -> { | |
// update UI | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment