У меня есть BaseObservable
, который я использую в привязке данных для отображения состояния сети. В этом классе я передаю повторный вызов, который я хочу запускать при каждом нажатии кнопки:
class NetworkStateViewModel(val retryCallback: () -> Unit) : BaseObservable() {
var networkState: NetworkState? = null
set(value) {
field = value
notifyChange()
}
val isLoading: Boolean
@Bindable get() = networkState is NetworkState.Loading
val isShowingError: Boolean
@Bindable get() = networkState is NetworkState.Error
val errorText: String
@Bindable get() = (networkState as? NetworkState.Error)?.error?.message.orEmpty()
}
Однако, когда я пытаюсь сослаться на retryCallback
через привязку данных, он не может скомпилироваться, так как он говорит, что cannot find method retryCallback() in class NetworkStateViewModel
.
<Button
...
android:onClick="@{() -> viewModel.retryCallback()}"
... />
На данный момент я нашел одну работу, которую я опубликую отдельно в качестве ответа, но я хотел бы знать, могу ли я назвать это напрямую.