android - android:onClickListener 未找到
问题描述
我正在阅读下一本书“探索 Android”0.7 版https://commonsware.com/AndExplore/
其 Android 示例项目使用 Data Binding 库
所以有一种布局,它包含行android:onClickListener="@{(v) -> holder.onRowClick.invoke(model)}">
:
<androidx.constraintlayout.widget.ConstraintLayout
android:onClickListener="@{(v) -> holder.onRowClick.invoke(model)"
android:layout_width="match_parent"
android:layout_height="wrap_content">
但它不会编译。
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
res\layout\todo_row.xml:13: AAPT: error: attribute android:onClickListener not found.
但是一些这样的监听器可以工作,例如android:onCheckedChanged
,尽管 Android Studio 显示警告:
我不太喜欢这一切(lambdas,xml 中的函数),但似乎 Android 允许其中一些,它可以用于编写基于 MVVM 的应用程序
那么为什么android:onCheckedChanged
有效并且android:onClickListener
我得到“未找到”错误?
解决方案
你最后错过}
了。应该
android:onClickListener="@{(v) -> holder.onRowClick.invoke(model)}"
推荐阅读
- javascript - sprites 如何在 three.js 中工作?
- arrays - 如何以稳定的顺序查找数组中最大 n 个元素的索引
- java - Tomcat Apache ServletException 输出编码
- python - 如何在熊猫中将数据对齐到数据框的顶部
- python-2.7 - Python/Flask 部署的战略错误
- python - DRF 更新一行
- asp.net-mvc - ASP .NET MVC 模板中缺少 bower.json 和 .bowerrc
- javascript - 基本的 reactjs,如何获取 REST 数据并渲染它
- php - php 代码覆盖率和 selenium 设置
- java - 在最终类中扩展 Comparable 泛型