我正在学习如何使用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....";
}
}