Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 原因:无法';不要猜测com.example.newmvvm.ListViewModel.ListViewModel_Android - Fatal编程技术网

Android 原因:无法';不要猜测com.example.newmvvm.ListViewModel.ListViewModel

Android 原因:无法';不要猜测com.example.newmvvm.ListViewModel.ListViewModel,android,Android,我正在尝试一个简单的程序(带有editbox和一个按钮),以了解Android中的MVVM和数据绑定功能。我在activity_main.xml中添加字段时出错。 我已经重命名了包和类名,但是得到了错误“原因:无法猜测com.example.newmvvm.ListViewModel.ListViewModel” 我已经更新了下面的代码。请帮助理解错误的原因 已更新 主要活动: listViewModel: DB: activity_main.xml: 运行日志: 您没有为布局生成数据绑定对象,

我正在尝试一个简单的程序(带有editbox和一个按钮),以了解Android中的MVVM和数据绑定功能。我在activity_main.xml中添加字段时出错。 我已经重命名了包和类名,但是得到了错误“原因:无法猜测com.example.newmvvm.ListViewModel.ListViewModel”

我已经更新了下面的代码。请帮助理解错误的原因

已更新

主要活动:

listViewModel:

DB:

activity_main.xml:

运行日志:


您没有为布局生成数据绑定对象,即

MainActivityBinding binding  = DataBindingUtil.setContentView(this,R.layout.main_activity);
现在在活动中使用viewmodel设置数据绑定

Yourviewmodelclass  viewModel = ViewModelProviders.of(this).get(yourviewmodelclass.class);

binding.SetviewModel(viewModel)

并且您没有设置视图模型

您没有为布局生成数据绑定对象,即

MainActivityBinding binding  = DataBindingUtil.setContentView(this,R.layout.main_activity);
现在在活动中使用viewmodel设置数据绑定

Yourviewmodelclass  viewModel = ViewModelProviders.of(this).get(yourviewmodelclass.class);

binding.SetviewModel(viewModel)

您没有设置视图模型的问题就在这里
com.example.newmvvm.ListViewModel.ListViewModel

我猜这是您的包名
ListViewModel
,它包含这个类
ListViewModel

数据绑定中
包名应为小写,而
名称应以大写开头。如果不是,则找不到

使用此
ListViewModel
重命名此包名
ListViewModel

并使用此
listViewModel
重命名您的
listViewModel
可观察类

你的类型看起来像这样

type="com.example.newmvvm.listViewModel.ListViewModel"
添加并删除此行。
listViewModel
不是
viewmodel
它是
可观察的

listViewModel viewModel = ViewModelProviders.of(this).get(listViewModel.class);

问题就在这里
com.example.newmvvm.ListViewModel.ListViewModel

我猜这是您的包名
ListViewModel
,它包含这个类
ListViewModel

数据绑定中
包名应为小写,而
名称应以大写开头。如果不是,则找不到

使用此
ListViewModel
重命名此包名
ListViewModel

并使用此
listViewModel
重命名您的
listViewModel
可观察类

你的类型看起来像这样

type="com.example.newmvvm.listViewModel.ListViewModel"
添加并删除此行。
listViewModel
不是
viewmodel
它是
可观察的

listViewModel viewModel = ViewModelProviders.of(this).get(listViewModel.class);

type=“com.example.newmvvm.ListViewModel.ListViewModel”是错误的原因。但是我觉得目录名和类名是适当提供的。listViewModel java类扩展了ViewModel,是com.example下listViewModel文件夹的一部分。newmvvmtype=“com.example.newmvvm.listViewModel.listViewModel”是错误的原因。但是我觉得目录名和类名提供得很恰当。listViewModel java类扩展了ViewModel,并且是com.example.newMVVMThank下的listViewModel文件夹的一部分。我已经更新了上面的代码,仍然有相同的错误。您的ViewModel类需要扩展ViewModel。更改为“公共类listViewModel扩展了ViewModel,BaseObservable{”,仍然相同error@Override受保护的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ActivityMainBinding ActivityMainBinding=DataBindingUtil.setContentView(this,R.layout.activity_main);ActivityMainBinding.setViewModel(新建listViewModel());listViewModel viewModel=ViewModelProviders.of(this).get(listViewModel.class);}从ExtendHanks中删除baseObseravle类。我已更新了上面的代码,仍然存在相同的错误。您的viewModel类需要扩展viewModel。更改为“公共类listViewModel扩展viewModel,BaseObservable”{”“还是一样error@Override受保护的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ActivityMainBinding ActivityMainBinding=DataBindingUtil.setContentView(this,R.layout.activity_main);ActivityMainBinding.setViewModel(new listViewModel());listViewModel viewModel=ViewModelProviders.of(this).get(listViewModel.class);}从extend*中删除baseObseravle类出错原因:任务执行失败:app:DataBindingGenBaseClasseDebug'.>无法猜测com.example.newmvvm.listviewmodel.listviewmodel我将类名重命名为listviewmodel-all caps。它已编译。是的。谢谢。*出错原因:任务执行失败:app:dataBindingGenBaseCLassedBug'.>无法猜测com.example.newmvvm.listviewmodel.listviewmodel我将类名重命名为listviewmodel-所有大写。它已编译。是的。谢谢。
type="com.example.newmvvm.listViewModel.ListViewModel"
listViewModel viewModel = ViewModelProviders.of(this).get(listViewModel.class);