当前位置: 首页 > 知识库问答 >
问题:

无法创建viewmodel的实例

张嘉熙
2023-03-14

你好,我是android中MVVM的新手,正在使用livedata。我正在尝试创建viewmodel的一个实例。我觉得问题在于我没有将存储库传递给viewmodel构造函数。我一直无法创建viewmodel的实例。我不知道该怎么做这里是我的viewmodel和它的创建。

public class UserProfileViewModel extends ViewModel {
    private LiveData<User> user;
    private UserRepository userRepository;

    @Inject
    public UserProfileViewModel(UserRepository userRepo){
        this.userRepository = userRepo;
    }

    public void init(String userId){
        if (this.user != null) {
            return;
        }
        user = userRepository.getUser(userId);
    }

    public LiveData<User> getUser() {
        return this.user;
    }
}


//create view model in fragment
viewModel = ViewModelProviders.of(this).get(UserProfileViewModel.class);
viewModel.init(mUserId);

共有2个答案

施雅懿
2023-03-14

对于任何游荡的人来说,这个问题的解决方案都可以在那里找到https://stackoverflow.com/a/49087002/6692278

怀浩大
2023-03-14

下面是使用视图模型的正确解释-

使用新的体系结构组件ViewModel在片段之间共享数据

希望这有帮助

 类似资料:
  • 这是我的代码 这是从谷歌样本..后我想: 问题就在这里: java.lang.RuntimeException:无法创建类com.lacas.db.room.BookMarkViewModel的实例 我可以用这个片段吗? null

  • 我尝试了MVVM架构,实现了所有需要的类和方法。在MainActivity中创建ViewModel类的对象时,我得到以下错误的实例。 我试了一个YouTube教程中的例子。我把所有的实现都做对了。我尝试过将ViewModel类和构造函数公开,但应用程序仍然在运行时崩溃。 mainactivity.java NoteViewModel.java noteRepository.java 日志

  • 我只是从喷气背包和剑柄开始。但是当我注入到ViewModel中时,我遇到了一些问题。 我得到的错误: 我可以在活动中注入所有细节,但不能在ViewModel中注入。我已经尝试了所有我能找到的解决办法。 我的gradle文件: 项目根级别: 模块级: 我的申请文件 我的模块文件: 项目是具有可组合屏幕的单个活动,因此主要活动: 视图模型: 我尝试过的事情: 改为ViewModelComponent而

  • 我正在开发一本新书android应用程序,但当我测试从logcat获取以下异常的代码时,应用程序崩溃 hread.mainRuntimeException:无法启动活动ComponentInfo{hread.java:6662}:java.lang.reflect.RuntimeException:无法创建ethod.invokeBookViewModel类的实例com.android.inter

  • 我正在使用room和ViewModel开发一个notes应用程序,但在初始化ViewModel内部活动时,我得到了以下信息: JAVAlang.RuntimeException:无法创建类包的实例。笔记。主屏幕。家信 这是我的主要活动 而ViewModel就像- 我的视图模型工厂就像- 我不知道问题出在哪里。帮助我。提前谢谢。 更新:-完整的stacktrace是