Android登录屏幕(双向绑定EditText和TextView)

吾生也有涯,而知也无涯。这篇文章主要讲述Android登录屏幕:双向绑定EditText和TextView相关的知识,希望能为你提供帮助。
我试图用用户名+密码的数据绑定创建一个简单的登录屏幕。我只有单向绑定:我可以在代码中设置绑定变量并查看它们反映在UI中,但UI更改不会更改变量。

Activity --- ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login); binding.setLifecycleOwner(this); mViewModel = ViewModelProviders.of(this).get(LoginViewModel.class); ViewModel --- public class UserViewModel { public ObservableField< String> username = new ObservableField< > (""); public ObservableField< String> password = new ObservableField< > (""); public ObservableField< Boolean> doRemember = new ObservableField< > (false); public UserViewModel(String username, String password, Boolean doRemember) { this.username.set(username); this.password.set(password); this.doRemember.set(doRemember); } }View --- < EditText android:text="@{userVm.username}" android:layout_width="match_parent" android:layout_height="wrap_content"/> < TextView android:text="@{userVm.username}" android:layout_width="wrap_content" android:layout_height="wrap_content" />

我发现一个网站建议我使用TextWatcher(https://www.bignerdranch.com/blog/two-way-data-binding-on-android-observing-your-view-with-xml/)来实现双向绑定。这是有效的,但这是否真的需要我想绑定的每个视图?!不是有一个更简单的方法吗?
答案哦,双向绑定有一个“@ = {}”语法:O
android:text="@={userVm.username}"

代替
android:text="@{userVm.username}"

【Android登录屏幕(双向绑定EditText和TextView)】作品

    推荐阅读