我已经使用MVVM模式实现了DataBinding,这是我的ViewModel
类。
public class MainViewModel extends BaseObservable {
private String data, data1;
@Bindable
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
@Bindable
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
notifyPropertyChanged(BR.data);
}
}
现在问题是我可以看到BR.data
但是无法获得BR.data1
,如何将notifyPropertyChanged()
用于data1
变量。
我试图清理该项目,也试过重建它但没有帮助我。
这是我的build.gradle
文件
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
dataBinding {
enabled = true
}
defaultConfig {
...
...
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
}
答案 0 :(得分:5)
因为AndroidX在这里
因此,您所需要做的就是更改导入自
import your_package_name.BR
具有以下代码
import androidx.databinding.library.baseAdapters.BR
还请检查您的生命周期库新版本
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
答案 1 :(得分:3)
我找到了解决这个问题的方法。
1)在android studio中尝试使用Invalidate caches and restart
2)正如yigit所提到的,它是android studio bug,你可以直接使用变量而不是等待变量名来作为建议。
答案 2 :(得分:1)
我尝试了以下操作,并且现在可以正常工作:
1。 将BR的导入更改为 导入com.android.databinding.library.baseAdapters.BR;
2.file->使cahces /重启无效
答案 3 :(得分:1)