绑定到“子包”模型不会编译

时间:2019-04-04 12:14:56

标签: android data-binding

我正在尝试使用Android数据绑定,如果模型位于“子包”中,它将无法编译。

当我的模型位于我的根包中但不适用于“子包”模型中的模型时,它可以正常工作。在最后一种情况下,编译失败,指示error: package Models does not exist

这有效:
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="bindtest"
        type="com.sandbox.tests.BindableData1" />
    </data>

MainActivity:

import com.sandbox.tests.BindableData1;
import com.sandbox.tests.Models.BindableData2;
[...]
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, com.sandbox.tests.R.layout.activity_main);
        binding.setBindtest(new BindableData1());
        //binding.setBindtest(new BindableData2());
    }
}

这是行不通的:
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="bindtest"
        type="com.sandbox.tests.Models.BindableData2" />
    </data>

MainActivity:

import com.sandbox.tests.BindableData1;
import com.sandbox.tests.Models.BindableData2;
[...]
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, com.sandbox.tests.R.layout.activity_main);
        //binding.setBindtest(new BindableData1());
        binding.setBindtest(new BindableData2());
    }
}

当然,BindableData1和BindableData2严格相同(但显然它们的名称和位置相同)。
模型是从IDE创建的,用于其他类(不是数据绑定)。

有人经历过吗?

0 个答案:

没有答案