为了账号安全,请及时绑定邮箱和手机立即绑定

无法创建 com.example.architectureexample.NoteViewModel

无法创建 com.example.architectureexample.NoteViewModel

拉丁的传说 2023-08-04 15:42:03
每次我运行我的应用程序时,它都会在标题中显示此错误,并且我已经搜索了一些问题,有人说将 ViewModel 构造函数公开,而我的是公开的,其他人则说:从 HomeViewModel 中删除 Context 上下文和 LifecycleOwnerlifecycleOwner 构造函数参数,或者创建一个可以构建 HomeViewModel 实例的 ViewModelProvider.Factory ,并将该工厂与 ViewModelProviders.of() 一起使用我已经提出了两种解决方案,但仍然遇到相同的错误主要活动package com.example.architectureexample;import androidx.appcompat.app.AppCompatActivity;import androidx.lifecycle.Observer;import androidx.lifecycle.ViewModelProvider;import androidx.lifecycle.ViewModelProviders;import android.os.Bundle;import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity {//    5th video    private NoteViewModel noteViewModel;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        noteViewModel = ViewModelProviders.of(this).get(NoteViewModel.class);        noteViewModel.getAllNotes().observe(this, new Observer<List<Note>>() {            @Override            public void onChanged(List<Note> notes) {//                update recycleView                Toast.makeText(MainActivity.this, "onChanged", Toast.LENGTH_SHORT).show();            }        });    }}
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

您的数据库从未初始化。

instance!=null应该是instance==null


查看完整回答
反对 回复 2023-08-04
?
www说

TA贡献1775条经验 获得超8个赞

我也遇到了同样的问题,因为 ViewModelProviders 已被弃用。所以我用过:

NoteViewModel viewModel = new ViewModelProvider.AndroidViewModelFactory(getApplication()).create(NoteViewModel.class);



查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信