Не удается найти метод получения для <... app: myValue>, который принимает тип параметра 'java .lang.String' - PullRequest
2 голосов
/ 17 апреля 2020

У меня есть View (не ViewModel!) С более сложной логикой / состоянием, для которого я хочу включить двустороннюю привязку данных. Поэтому вместо использования stati c BindingAdapters я хотел использовать геттеры / сеттеры.

Поэтому я сделал следующее:

var myValue: String = ""
@Bindable get(): String {
    return field
}
set(value: String) {
    field=value // this creates backing field
    setText(value)
    notifyPropertyChanged(BR.myValue)
}

При компиляции (с помощью ./gradlew assembleDebug --stacktrace для получения детали) Я получаю эту ошибку:

Caused by: android.databinding.tool.util.LoggedErrorException: Found data binding error(s):

ERROR: Cannot find a getter for <com.example.test.MyAutoCompleteTextView app:myValue> 
that accepts parameter type 'java.lang.String'

If a binding adapter provides the getter, check that the adapter is annotated correctly
and that the parameter type matches. 
file:///Users/myuser/AndroidStudioProjects/MyProject/app/src/main/res/layout/fragment_my.xml Line:123

Часть, которую я не совсем понимаю, это

ERROR: Cannot find a getter for <com.example.test.MyAutoCompleteTextView app:myValue> 
that accepts parameter type 'java.lang.String'

Почему он ищет геттер с параметром типа String? Получатель должен возвращать строку, но не иметь параметр String ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...