Как получить ссылку на компонент пользовательского интерфейса в слое ViewModel - PullRequest
0 голосов
/ 04 января 2019

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

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

Но теперь вопрос в другом, я хочу получить доступ к ссылке на EditText, чтобы я мог вызвать call .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....";
}
}
...