private MutableLiveData mText = new MutableLiveData<>();
public LiveData getText() {
return mText;
}
private FragmentExampleBinding mBinding;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_example, container, false);
mBinding.setLifecycleOwner(this);
return mBinding.getRoot();
}
public void setText(String text) {
mText.setValue(text);
}
现在,您可以在其他类中检索该值。例如,在Fragment类中:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewModel viewModel = ViewModelProviders.of(requireActivity()).get(ViewModel.class);
viewModel.setText("Hello, world!");
viewModel.getText().observe(getViewLifecycleOwner(), new Observer() {
@Override
public void onChanged(@Nullable String text) {
mBinding.textviewExample.setText(text);
}
});
}