我试图用
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之间没有任何关联.
原文地址:https://www.jb51.cc/android/308856.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。