Как получить ссылку на компонент пользовательского интерфейса в слое ViewModel

Я учусь, как разрабатывать, используя MVVM. Я создал небольшой пример, как показано ниже в коде. Мой вопрос, как я могу иметь ссылку на весь компонент пользовательского интерфейса, такой как EditText, Button в классе ViewModel? Причина, по которой я пытаюсь это сделать, заключается в том, что я хочу программно изменить подсказку, добавленную в EditText, и для этого мне нужно вызвать метод sethint для ссылки на компонент пользовательского интерфейса EditText.

Ранее я задавал вопрос о том, как связать android: hint с обратным вызовом в классе ViewModel, чтобы при инициализации EditText значение android: hint было получено из обратного вызова в ViewModel.

Но теперь вопрос в другом, я хочу иметь доступ к ссылке на EditText, чтобы я мог вызывать.sethint программно

XML

        android:id="@+id/actMain_LoginViewModel1_et_userId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@{LoginViewModel1.onHintChanged()}"
        android:afterTextChanged="@{(editable)->LoginViewModel1.onAfterUserIdChanged(editable)}"

ViewModel

public class LoginViewModel1 extends BaseObservable {
private final static String TAG = LoginViewModel1.class.getSimpleName();

public String onHintChanged(CharSequence chars) {
   Log.d(TAG, "onHintChanged chars: " + chars);
   return "HINT....";
}
}

0 ответов

Другие вопросы по тегам