私は現在、アンドロイドアプリケーションプロジェクトにdatabinding
を使用しています。私はCustomTextView
にerror
メッセージを設定してR.string.txtOldPassWordError
からViewModelClass
という別のクラスから設定します。ここで ViewModelでR.stringを取得する方法Androidでデータバインディングのクラス
は私の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}" />
であり、これは
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);
}
}
}
ViewModelClass.javaであり、これはstrings.xml
<string name="select">Please Enter Old Password</string>
から文字列です。
したがって、私はviewModelクラスのこの文字列にアクセスし、hardcoded it directly as string
の代わりにエラーメッセージとして設定したいと思います。
どのように私はこれを達成することができますか?私はAndroid Studio 3.0 Betaバージョンを使用しています。どんな助けでも本当に感謝しています。
getResources()はgetString(R.string.select)でアクセスすることができますよりも、0
。 またはhttps://stackoverflow.com/questions/7493287/android-how-do-i-get-string-from-resources-using-its-name –
この@SagarAgharaを試してみましたが、メソッド 'getResources'を解決できません "、努力のためには –
getResourcesはコンテキストが必要なためです。 MVVMアーキテクチャを使用していますか?コンストラクタを介してアクティビティやフラグメントから文字列を渡すことはできませんか? – Raghunandan