我目前正在使用databinding
对于我的 Android 应用程序项目。我想设置error
留言在我的CustomTextView
from R.string.txtOldPassWordError
并从另一个名为的类中进行设置ViewModelClass
.
这是我的 XML 代码
<com.horseproject.widget.CustomEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/dp_20"
android:drawablePadding="@dimen/dp_10"
android:hint="@string/enter_old_password"
android:inputType="textPassword"
android:lines="1"
android:text="@={ChangePasswordVM.userOldPassword}"
android:textColorHint="@color/gray_text"
app:drawableLeftCompat="@drawable/ic_password_lock"
app:drawableTintCompat="@color/gray_app"
app:error="@{ChangePasswordVM.userOldPasswordError}" />
这是 ViewModelClass.java
public class ChangePasswordViewModel extends BaseObservable {
public ObservableField<String> userOldPassword = new ObservableField<>("");
public void userPasswordChange() {
if ((TextUtils.isEmpty(userOldPassword.get()))) {
userOldPasswordError.set("Please enter your old password");
return;
} else if (userOldPassword.get().length() <= 5) {
userOldPasswordError.set("Password should contain minimum 6 characters");
return;
} else {
userOldPasswordError.set(null);
}
}
}
这是来自的字符串strings.xml
<string name="select">Please Enter Old Password</string>
所以,我想在我的 viewModel 类中访问这个字符串并将其设置为错误消息而不是hardcoded it directly as string
.
那么我怎样才能做到这一点呢?我使用的是 Android Studio 3.0 Beta 版本。任何帮助将非常感激。
使用 ObservableInt 对我有用。将其添加到 ViewModel
private final ObservableInt mErrorText = new ObservableInt(R.string.empty_text);
public ObservableInt getErrorText() {
return mErrorText;
}
只需设置一个新的字符串值
mErrorText.set(R.string.text_not_valid);
在 xml 中将以下内容添加到 TextView
android:text="@{viewModel.errorText}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)