Wie man R. string in der ViewModel-Klasse von DataBinding in Android

Ich bin derzeit mit databinding für mein android-Anwendung-Projekt. Ich möchte, um die error Nachricht auf meinem CustomTextView aus R.string.txtOldPassWordError zu stellen und von einer anderen Klasse aufgerufen ViewModelClass.

Hier ist mein XML code

<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}" />

und das ist 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);
        }
    }
}

und dieser string ist aus strings.xml

<string name="select">Please Enter Old Password</string>

So, ich will Zugriff auf diese Zeichenfolge in meinem viewModel-Klasse, und legen Sie es als Fehlermeldung, statt hardcoded it directly as string.

Also, wie kann ich das erreichen? Ich bin mit Android Studio 3.0 Beta Version. Jede Hilfe wäre wirklich zu schätzen.

  • getResources().getString(R. string.wählen Sie); oder wenden Sie sich mit diesem stackoverflow.com/questions/7493287/...
  • ich habe versucht, diese @SagarAghara, aber Sie sagt, Sie "können nicht beheben "Methode getResources' ", thx für die Bemühungen
  • das ist, weil getResources braucht Kontext. Sind Sie mit MVVM-Architektur durch Zufall. Konnte Sie nicht übergeben Sie die Zeichenfolge aus einer Aktivität oder fragment über Konstruktor?
InformationsquelleAutor | 2017-10-10
Schreibe einen Kommentar