@ Bindable不会在BR类中生成字段

问题描述 投票:0回答:2

我最近开始研究数据绑定。我的源代码中发生了此问题:

public class MyClassName extends BaseObservable {    
    @Bindable
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
        notifyPropertyChanged(BR.name <Can\'t find name in BR>);
    }
}

据我所知:

Bindable批注应应用于Observable类的任何getter访问器方法。 Bindable将在BR类中生成一个字段,以标识已更改的字段。

但是当我为字段@Bindable添加name注释时,在setter方法中找不到BR.name

我的项目包含两个包:com.example.package1com.example.packag2。上面的代码在com.example.packge2中。

但是当我添加@Bindable注释时,我无法导入com.example.package2.BR,Android Studio仅建议com.example.package1.BR

我该如何解决此问题?

android android-databinding
2个回答
0
投票

之所以这样,是因为首先需要生成生成的源-当存在未知参考时,它们将不会生成。这确实是一种自欺欺人的行为,但事实就是这样。

a)只需注释掉这一行:

// notifyPropertyChanged(BR.name);

b)建立项目

c),然后再次取消注释。


-1
投票

选项1:

clean项目,然后Rebuild项目。

选项2:

[在Android Studio中尝试Invalidate caches and restart

最后如果这两个都不起作用,那么

仅使用BR.variableName它将在屏幕上显示error,但是在runtime上您将看不到任何error。只需确保variable NameBR.NAME必须相同。

© www.soinside.com 2019 - 2024. All rights reserved.