현재 내 안드로이드 응용 프로그램 프로젝트에 databinding
을 사용하고 있습니다. 내 CustomTextView
에 error
메시지를 설정하고 R.string.txtOldPassWordError
에서 ViewModelClass
이라는 다른 클래스를 설정하고 싶습니다. 여기 Android에서 데이터 바인딩의 ViewModel 클래스에서 R.string 가져 오는 방법
내 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 베타 버전을 사용하고 있습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
의 GetResources()에는 getString (R.string.select)하여 액세스 할 수있는 것보다.; 또는 https://stackoverflow.com/questions/7493287/android-how-do-i-get-string-from-resources-using-its-name –
을 참조하십시오. @SagarAghara를 시도했지만 " getResources가 컨텍스트를 필요로하기 때문에, 'getResources'메소드를 해결할 수 없습니다. 노력은 –
입니다. MVVM 아키텍처를 사용하고 계십니까? 생성자를 통해 활동이나 단편에서 문자열을 전달할 수 있습니까? – Raghunandan