用来创建ViewModel,ViewModel不可以本身创建,必须要借助ViewModelProvider.Factory来创建。在创建时通常为ViewModel指定命据堆栈,如下:
public class LoginViewModelFactory implements ViewModelProvider.Factory {
@NonNull
@Override
public T create(@NonNull Class modelClass) {
if (modelClass.isAssignableFrom(LoginViewModel.class)) {
return (T) new LoginViewModel(LoginRepository.getInstance(new LoginDataSource()));
} else {
throw new IllegalArgumentException(“Unknown ViewModel class”);
}
}
}
LiveData