2 回答

TA貢獻1982條經驗 獲得超2個贊
我發現了一個很好的調整:
在視圖(xml 文件)中添加:
android:afterTextChanged="@{(edtitable)->LoginVM.afterUserNameChange(edtitable)}"
這將觸發afterUserNameChange視圖模型中的功能。
public void afterUserNameChange(CharSequence s)
{
//Log.i("truc", s.toString());
this.usrNm = s.toString();
}
此功能在用戶每次輸入后觸發EditText

TA貢獻1995條經驗 獲得超2個贊
最好使用 LiveData 和 MutableLiveData 模式。在您的 ViewModel LoginVM 中聲明:
private var _username = MutableLiveData<String?>()
var username: LiveData<String?> = null
get() = _username
然后在 EditText 的 xml 中添加:
android:afterTextChanged="@{LoginVM::setUsername}"
android:text="@{LoginVM.username}"
所以還要在你的 LoginVM viemodel 中定義 setUsername 函數:
fun setUsername(s: Editable){
_username.value = s.toString()
}
而已?,F在你的用戶名發生了變化,因為它在 viewmodel 中發生了變化。此外,如果您更改 EditText 中的文本,它會自動更新視圖模型中的 _username 字段?,F在您可以在布局中創建 onClick 函數并使用您在 editText(_username) 中輸入的值并進行一些有用的操作。
添加回答
舉報