java - 如何在Android中初始化一个类并将对象传递给构造函数?

标签 java android

我有以下类(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/

相关文章:

java - 在默认浏览器中打开 URL

java - 从移动设备到服务器的强大文件传输

java - Spring Data REST 重写 findBy* 方法

java - 如何向这些 JFrame 添加图片?

java - 无法登录 Google Play 游戏服务 : Must have a game ID to sign in

android - React-Native-Image-Picker(无法映射图像数组)

java - 多页 Tiff 压缩

java - ListView Android 因运行时异常而崩溃

android - Android 版 WebView 中的滚动性能 - Jelly Bean 4.1.x

java - 如何获取枚举自定义属性的所有可能值?