我试图用
Android数据绑定做一个简单的测试示例.我只想在我的片段中显示名为“title”的EditText中的文本“test”,但是这个文本没有显示出来.这是我的代码:
TestVM.java
public class TestVM extends BaSEObservable { public TestVM() {} @Bindable public String getText() { return "test"; } }
fr_login.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="test" type="de.theappguys.templateandroid.viewmodel.TestVM"/> </data> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginTop="20dp" android:text="@{test.text}" android:textSize="22sp" android:textStyle="bold" android:textColor="@android:color/black" /> </RelativeLayout> </layout>
FrLogin.java
@EFragment public class FrLogin extends Fragment { ... @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { FrLoginBinding binding = DataBindingUtil.inflate(inflater,R.layout.fr_login,container,false); return binding.getRoot(); } ...
的build.gradle
android { ..... dataBinding { enabled = true } .... }
解决方法
你需要为绑定设置值
FrLoginBinding binding = DataBindingUtil.inflate(inflater,false); binding.setTest(new TestVM());
代码问题在于您的模型与Fragment之间没有任何关联.