gpt4 book ai didi

android - ObservableField 未更新?

转载 作者:行者123 更新时间:2023-11-29 23:10:45 25 4
gpt4 key购买 nike

我正在尝试修改我的应用程序以使用 MVVM。现在,我正在尝试创建一个简单的“密码重置”页面,我试图为其获取文本字段的值:电子邮件地址字段。不幸的是,我的电子邮件字段仍然为空。 viewmodel 可以正常工作,因为我可以正确访问 onResetPassword。

如有任何帮助,我们将不胜感激。

忘记密码ViewModel.java

public class ForgotPasswordViewModel extends ViewModel {

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

public void onResetPassword() {
Log.i("PASSWORD", "xxx -> " + email.get());
}
}

activity_forgot_password.xml

<data>
<variable
name="viewModel"
type="com.example.foo.viewModels.ForgotPasswordViewModel" />
</data>

<RelativeLayout
android:id="@+id/loginLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.LoginActivity">


<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp">


<EditText
android:inputType="textEmailAddress|textNoSuggestions"
android:text="@{viewModel.email}"
android:hint="@string/email" />
<Button
android:text="Login"
android:onClick="@{(v) -> viewModel.onResetPassword()}" />
</LinearLayout>
</RelativeLayout>
</layout>

最佳答案

如果您希望将 EditText 的输入输入到 email 字段中,您需要使用双向绑定(bind)...这意味着您需要一个 =:

android:text="@={viewModel.email}"

现在,您正在使用单向绑定(bind),它用 email 的内容填充 EditText,但不会更新 email 任何用户更改。

关于android - ObservableField<String> 未更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56046140/

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