先看使用方法:
public class MyActivity extends AppCompatActivity {
private MyViewModel vm;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyActivityBinding binding = MyActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
vm = new ViewModelProvider(this,new ViewModelProvider.AndroidViewModelFactory(getApplication())).get(MyViewModel.class);
binding.btSend.setOnClickListener(v -> {
vm.setAccount("123456789");
});
binding.btGet.setOnClickListener(v->{
Log.e("ViewModel",vm.mAccount.getValue().toString());
});
vm.mAccount.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
Log.e("ViewModel","Observer--onChanged" + s);
}
});
}
}
public class MyViewModel extends AndroidViewModel implements Serializable {
public MyLiveData<String> mAccount;
public MyViewModel(@NonNull Application application) {
super(application);
mAccount = new MyLiveData<>();
}
public void setAccount(String account){
mAccount.setValue(account);
}
}public class MyActivity extends