当我构建应用程序(构建但尚未运行)时, 我遇到构建错误:
发现数据绑定错误....找不到方法 类中的addTask(java.lang.String,boolean) com.edenhan.simplytask.CreateTaskForm。
但我确实在这个CreateTaskForm
kotlin类中有addTask方法,所以不确定出了什么问题。
下面是片段类CreateTaskForm,
class CreateTaskForm:Fragment (){
var addTask:(String,Boolean)-> Unit={s,b-> }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
var binding:FragmentCreateTaskFormBinding =
DataBindingUtil.inflate(inflater,R.layout.fragment_create_task_form, container,false)
binding.me=this
return binding.root
}
下面是片段布局fragment_create_task_form
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="me" type="com.edenhan.simplytask.CreateTaskForm">
</variable>
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnCreateTask"
android:background="@android:drawable/ic_menu_add"
android:onClick="@{(v)->me.addTask(`ds`,true)}"
.../>
答案 0 :(得分:0)
发现数据绑定错误....找不到方法 类中的addTask(java.lang.String,boolean) com.edenhan.simplytask.CreateTaskForm。
数据绑定无法在CreateTaskForm中找到方法,可能无法将您的类函数字段识别为类方法。
var addTask:(String,Boolean) - &gt;单元= {S,B-&GT; }
我看到两个解决方案:
首先,在CreateTaskForm中将字段更改为函数:
fun addTask(value: String, flag: Boolean) {
}
其次,从xml中的函数字段直接调用:
<Button
android:id="@+id/btnCreateTask"
android:background="@android:drawable/ic_menu_add"
android:onClick="@{(v)->me.addTask.invoke(`ds`,true)}"
.../>