gpt4 book ai didi

android - 如何通过数据绑定(bind)获取 Edittext 值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:17 26 4
gpt4 key购买 nike

我有一个像这样的 ViewModel:

public class LoginViewModel {

public final ObservableField<String> email = new ObservableField<>();
public final ObservableField<String> password = new ObservableField<>();

public LoginViewModel() {

我的 View 中有两个 editText 和一个按钮:

<EditText
android:id="@+id/password"
android:text="@={login.email}"/>
<EditText
android:id="@+id/password"
android:text="@={login.password}"/>

<Button android:onClick="onLoginClick"/>

在我的 Activity 中,我想在单击按钮时打印两个 edittext 值,类似这样:

LoginActivityBinding loginActivityBinding = DataBindingUtil.setContentView(this, R.layout.activity_login);
Log.e("password", ""+loginActivityBinding.getLogin().password.get());

我得到一个 Nullpointer 异常,我应该如何修改我的代码以获取值。

最佳答案

当您实例化一个 ObservableField 时,默认值为 null。当 EditText 修改值时(即使为空),它将被设置为非空值。然而,在那之前,它是空的。

通过给字段一个非空初始值很容易解决这个问题:

public final ObservableField<String> email =  new ObservableField<>("");
public final ObservableField<String> password = new ObservableField<>("");

关于android - 如何通过数据绑定(bind)获取 Edittext 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42085526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com