我有以下类(class):
public class MovieViewModel extends ViewModel {
private String query;
public MovieViewModel() {
MyFactory factory = new MyFactory(); //Pass the query in the constructor
//other stuff
}
}
在我的 MainActivity
中,我正在创建此类的一个对象,如下所示:
MovieViewModel model = ViewModelProviders.of(this).get(MovieViewModel.class);
如何创建 MovieViewModel
类的对象,同时初始化 query
字符串,以便将其传递到 MyFactory
构造函数?
最佳答案
您可以创建自定义工厂。
public class MovieViewModelFactory implements ViewModelProvider.Factory {
private Application mApplication;
private String mParam;
public MovieViewModelFactory(Application application, String param) {
mApplication = application;
mParam = param;
}
@Override
public <T extends ViewModel> T create(Class<T> modelClass) {
return (T) new MovieViewModel(mApplication, mParam);
}
}
现在你可以这样使用
MovieViewModel movieViewModel = ViewModelProviders.of(this, new MovieViewModelFactory(this.getApplication(), "param")).get(MovieViewModel.class);
关于java - 如何在Android中初始化一个类并将对象传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53392327/