gpt4 book ai didi

使用数据绑定(bind)时 Android EditText 不更新

转载 作者:行者123 更新时间:2023-11-30 01:08:36 25 4
gpt4 key购买 nike

EditText 应包含文本“电子邮件地址”。一旦用户按下 EditText 字段,它就应该被清除,以便用户可以填写他的真实电子邮件地址。

更改是使用“Build”、“Rebuild project”完成的,以确保正确地重新加载数据绑定(bind)。

主 Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

final LoginActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.login_activity);
binding.userEmail.setText("E-mail address");

binding.setViewmodel(new LoginViewModel(new LoginDataListener() {

@Override
public void onLoginClicked() {
String userEmail = binding.userEmail.getText().toString();
User user = new User(userEmail, "");
}
}));
}

登录 View 模型

public class LoginViewModel {

private LoginDataListener mDataListener;

public LoginViewModel(@NonNull final LoginDataListener loginDataListener) {
mDataListener = loginDataListener;
}

public void onLoginClicked(View view){
mDataListener.onLoginClicked();
}

public void onEmailAddressClicked(View view) {
EditText userEmail = (EditText) view.findViewById(R.id.user_email);
userEmail.setText("");
}

login_activity.xml

<EditText
android:id="@+id/user_email"
android:onClick="@{viewmodel::onEmailAddressClicked}"
android:text="@={user.email}"
android:inputType="textEmailAddress"
android:layout_gravity="center_horizontal" />

<Button
android:id="@+id/login_button"
android:onClick="@{viewmodel::onLoginClicked}"
android:text="@string/login"
android:layout_gravity="center_horizontal" />

用户

public class User {

private String email;

public User(String email) {
this.email = email;
}

public void setEmail(String email) {
this.email = email;
}

public String getEmail() {
return email;
}
}

最佳答案

你在这里做错了:

binding.userEmail.setText("E-mail address");

做:

User user = new User("E-mail address");
binding.setUser(user);

但为什么你不设置 text hint编辑文本以达到您的要求?

关于使用数据绑定(bind)时 Android EditText 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651215/

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