如何在ViewModel层中引用UI组件

时间:2019-01-04 14:25:41

标签: android design-patterns mvvm android-mvvm

我正在学习如何使用MVVM进行开发。我创建了一个小示例,如下代码所示。 我的问题是,如何在ViewModel类中引用整个UI组件,例如EditText,Button?我尝试这样做的原因是,我想更改添加到EditText的提示 以编程方式,为此,我必须在UI组件EditText的引用上调用sethint方法。

我之前问过一个问题,该问题是如何将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)}"

视图模型

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 个答案:

没有答案