3

您好,我是 android 中的 MVVM 新手并使用 livedata。我正在尝试创建我的视图模型的实例。我觉得问题是我没有将我的存储库传递给我的视图模型构造函数。我一直无法创建视图模型的实例。我不确定如何在此处执行此操作,这是我的视图模型及其创建。

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);
4

2 回答 2

1

对于任何徘徊的人,可以在此处找到解决此问题的方法https://stackoverflow.com/a/49087002/6692278

于 2018-06-27T18:56:45.213 回答
1

这是使用视图模型的正确解释->

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

希望这可以帮助

于 2018-06-27T05:05:04.010 回答