Android数据绑定未显示

时间:2017-08-21 20:56:47

标签: android data-binding

我正在尝试在我的应用中使用数据绑定,但没有显示任何内容。

这就是我所做的:

  • 我创建了一个空活动的新项目。
  • 我添加了

    dataBinding {
        enabled = true
    }
    

    到我的build.gradle

这是我的activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">

        <data>
            <variable name="game" type="my.name.bar.Bar"/>
        </data>
        <android.support.constraint.ConstraintLayout
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="my.name.bar.MainActivity">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{game.GetFoo()}"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </android.support.constraint.ConstraintLayout>
    </layout>

这是我的Bar类

    public class Bar {
        private String str;

        public Bar() {
            str = "Foo";
        }

        public String GetFoo() {
            return str;
        }
    }

但我只是白屏。如果我用“Hello World!”替换绑定!一切正常。我做错了什么?

1 个答案:

答案 0 :(得分:1)

(从评论中提升)

您必须绑定该值。在你的情况下,它是这样的:

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.setGame(new Bar());