Вопрос
Я создал настраиваемый TextInputLayout
вот так:
class CustomTextInputLayout @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TextInputLayout(context, attrs, defStyleAttr) {
init {
val a = context.obtainStyledAttributes(
attrs, R.styleable.CustomTextInputLayout, defStyleAttr, 0)
val error = a.getString(R.styleable.CustomTextInputLayout_errorText)
setError(error)
a.recycle()
}
}
Он просто добавляет errorText
настраиваемый атрибут, а затем вызывает метод setError()
и передает текст, который был установлен в xml, поэтому в файле xml я могу написать что-то вроде этого:
<variable
name="bindings"
type="com.feature.account.ui.features.account.AccountBindings" />
<com.kasa.library.design.CustomTextInputLayout
...
app:errorText="@{bindings.error.firstNameError}"
...
/>
Кроме того, я создал класс, в котором я сохраняю свои привязки logi c как это
class AccountBindings {
val error = Error()
data class Error(
var firstNameError: String? = null
)
}
Ошибка
Итак, теперь, когда я пытаюсь собрать свой проект, я получаю сообщение об ошибке:
DataBinderMapperImpl.java:10: error: cannot find symbol
import com.feature.account.databinding.AccountFragmentAccountBindingImpl;
^
symbol: class AccountFragmentAccountBindingImpl
location: package com.feature.account.databinding
Я пробовал
- Я попытался сделать недействительным Cach of Android studio
- Я попытался аннотировать с помощью @Bindable
firstNameError
- Я попытался сделать класс
AccountBindings
наблюдаемым
но ничего не помогает, помогите пожалуйста