我正在使用
LiveData
和
ViewModel
但是当我建立这个项目的时候
error: cannot find symbol
import package.[layout_name]BindingImpl;
在里面
DataBinderMapperImpl.java
我遵循官方文件,寻找答案,但没有一个是可行的解决方案。
已经试过了
this
一个和
this
一
布局.xml
// this line was added from an answer but didn't work
name="model"
type="package.ViewModel"/>
// an input field I want to bind data with
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={model.email}" // if I remove this line, builds fine
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" />
扩展我的
视图模型
从
AndroidViewModel
而不是
BaseObservable
如文件所述
视图模型.kt
private val email: MutableLiveData by lazy { MutableLiveData() }
@Bindable // tried to change the return type to String, still no luck
fun getEmail(): LiveData {
return email
}
fun setEmail(email: String) {
this.email.value = email
}
我就是这样装订的
视图模型
具有
View
活动.kt
binding.model = ViewModelProviders.of(this, ViewModelProvider.AndroidViewModelFactory
.getInstance(application))
.get(LoginViewModel::class.java)
我错过了什么?已经包含了所有数据绑定前的内容,如果我替换了
视图模型
在里面
layout
用一个
data class
尝试从中获取数据,这很好,但是
@{}
在里面
布局
编辑
好吧,所以当我暴露
作为
public
,它编译和绑定工作,但我不能使它的setter和getter
公众的
我的意思是当我试图从它的getter和setter中暴露它时,ide说这些已经
private
fun
操作和不能
override
n?
我怎样才能让这个财产曝光
乐趣
行动?