java - Android 中奇怪的数据绑定(bind)

标签 java android data-binding android-databinding

我尝试弄清楚如何在 Android 中使用数据绑定(bind),但遇到了一个奇怪的问题。当我将 ViewModel 类放入某个包中时,生成的 ActivityMainBinding 看不到它并显示:错误:包 ViewModels 不存在。但如果我把它放在根包中,那么麻烦就消失了。是我的错误还是某种错误?

代码:

activity_main.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<data>
    <variable
        name="DataContext"
        type="com.example.sombrero.bluem.ViewModels.MainViewModel" />
</data>
...

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
    MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
    binding.setDataContext(mainViewModel);
}

MainViewModel 目前只是空类。

最佳答案

我也遇到过这个问题。感谢tynn回答我的question

根据 tynn 的说法,这是因为我们没有遵循 oracle 的包命名约定。包名应该全部小写。将“ViewModels”更改为“viewmodels”为我解决了这个问题。

关于java - Android 中奇怪的数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52395823/

相关文章:

java - 消极环顾四周的糟糕理解

java - Spring 4 Websockets java.lang.NoClassDefFoundError

android - 在 Android 上显示 Google map 十字线

android - 如何在特定的 Activity 地点打开 ListView ?

c# - 可视化树外的数据绑定(bind)。数据上下文桥接

c# - 我应该通过绑定(bind)使用 MVP 和 WPF 显示数据吗?

数据绑定(bind)不起作用的 Android gradle-experimental?

java - 添加鼠标监听器后进程不会关闭

android - 如何从另一个子模块访问子模块的布局?

java - 稀疏数组与 Java 中的 HashMap 有何不同