我被困在无法找到onLoginButtonClick方法的解决方案中,或者通常是我想通过使用绑定和空间在我的应用中进行身份验证的android数据错误,这就是我的代码
注册布局
android:text="@{register.emailEditTextRegisterContext}"
android:text="@{register.passwordEditTextRegisterContext}"
android:onClick="@={()-> register.onButtonLoginRegisterClick(register)}"
android:text="@{register.confirmPasswordTextContext}"
android:text="@{register.nameRegisterContext}"
登录布局
android:text="@{login.emailEditTextContext}"
android:text="@{login.PasswordEditTextContext}"
android:onClick="@={() -> login.onLoginButtonClick(login)}"
registerViewModel
private val _nameRegisterContext = MutableLiveData<String>()
val NameRegisterContext: LiveData<String>
get() = _nameRegisterContext
private val _emailEditTextRegisterContext = MutableLiveData<String>()
val emailEditTextRegisterContext: LiveData<String>
get() = _emailEditTextRegisterContext
private val _passwordEditTextRegisterContext = MutableLiveData<String>()
val passwordEditTextRegisterContext: LiveData<String>
get() = _passwordEditTextRegisterContext
private val _confirmPasswordTextContext = MutableLiveData<String>()
val confirmPasswordTextContext: LiveData<String>
get() = _confirmPasswordTextContext
private val _registerCompleted = MutableLiveData<Boolean>()
val registerCompleted: LiveData<Boolean>
get() = _registerCompleted
fun onButtonLoginRegisterClick(view: View){
}
登录布局
private val _emailedittextcontext = MutableLiveData<String>()
val emailEditTextContext: LiveData<String>
get() = _emailedittextcontext
private val _passwordedittextcontext = MutableLiveData<String>()
val PasswordEditTextContext: LiveData<String>
get() = _passwordedittextcontext
fun onLoginButtonClick(view : View){
onLogingin()
}
错误(每当我尝试解决方案时都会更改)
[kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:cannot find method onButtonLoginRegisterClick(com.example.android.trackmysleepquality.register.RegisterViewModel) in class com.example.android.trackmysleepquality.register.RegisterViewModel
file:C:\Users\mehmet\Desktop\andfun-kotlin-sleep-tracker-with-recyclerview\app\src\main\res\layout\register_layout.xml
loc:87:32 - 87:81
****\ data binding error ****
****/ data binding error ****msg:cannot find method onLoginButtonClick(com.example.android.trackmysleepquality.login.Login_ViewModel) in class com.example.android.trackmysleepquality.login.Login_ViewModel
file:C:\Users\mehmet\Desktop\andfun-kotlin-sleep-tracker-with-recyclerview\app\src\main\res\layout\login_layout.xml
loc:76:32 - 76:68
****\ data binding error ****
请帮助!
答案 0 :(得分:0)
错误:
android:onClick="@={() -> login.onLoginButtonClick(login)}"
android:onClick="@={()-> register.onButtonLoginRegisterClick(register)}"
您要将ViewModel对象传递给这些函数,而不是根据需要传递View
右:
android:onClick="@={(view) -> login.onLoginButtonClick()}"
android:onClick="@={(view)-> register.onButtonLoginRegisterClick()}"
答案 1 :(得分:0)
尽管@Miller Go Dev发布的答案在某种程度上纠正了您的代码,但仍不能满足需求。
正确的方法是这样
getAPI
答案 2 :(得分:0)
好吧,我要做的就是删除=符号,使数据绑定成为单向绑定
错误:
android:onClick="@={() -> login.onLoginButtonClick(login)}"
右:
android:onClick="@{() -> login.onLoginButtonClick()}"