DataBindingUtil.setContentView(this,layoutId)为null

时间:2019-05-10 17:50:36

标签: android android-databinding

binding = DataBindingUtil.setContentView(this, layoutId);

但绑定为空

这有时有值,有时

活动:

public class WellcomeActivity extends Activity {
{

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

       WellcomeBinding binding =  DataBindingUtil.setContentView(this,R.layout.wellcome);
vvv = (ViewFlipper) findViewById(R.id.main_vf);

}

vvv可以找到; Wellcomebinding可以找到; 绑定为空

我的英语不是很好

请多担待 请多加注意

xml文件没有错误 这是一个旧项目 编译没有错误 它只有运行时异常

the xml like this:
<?xml version="1.0" encoding="utf-8"?>
<layout 

    >

    <!--<data>-->

        <!--<variable-->
            <!--name="vm"-->
            <!--type="com.aaron.lazy.base.activity.BaseViewModel"></variable>-->
    <!--</data>-->

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/launcher_default"
        >

        <ViewFlipper
            android:id="@+id/main_vf"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            ></ViewFlipper>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="向右滑动3次以上"
            android:textColor="@color/white"
            android:textSize="30dp"
            />
    </RelativeLayout>


</layout>

3 个答案:

答案 0 :(得分:1)

这就是你的做法:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
}

答案 1 :(得分:0)

您是否尝试过使用:

 WellcomeBinding binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.wellcome, null, false);
setContentView(binding.getRoot());

答案 2 :(得分:0)

再次检查您是否在build.gradle中启用了数据绑定

android {
    dataBinding {
        enabled = true
    }
}

尤其是在图书馆中,这很容易被遗忘。请记住,所有依赖于使用数据绑定的库的模块都需要启用它(即使该模块本身不使用数据绑定)!