Android RoboBinding firePropertyChange()未定义错误

时间:2014-08-26 09:31:22

标签: android data-binding viewmodel model-view robobinding

我目前正在开发Android数据绑定应用程序。

我正在使用android" RoboBinding"用于绑定模型视图和视图模型的库。

我已使用here中的示例应用程序作为参考。

这是我的PresentationModel.java课程:

@org.robobinding.presentationmodel.PresentationModel
public class PresentationModel implements
    org.robobinding.property.ObservableBean {
private String name;

public String getHello() {
    return name + ": hello Android MVVM(Presentation Model)!";
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public void sayHello() {
    firePropertyChange(name);

}

@Override
public void addPropertyChangeListener(String arg0,
        PropertyChangeListener arg1) {
    // TODO Auto-generated method stub

}

@Override
public void removePropertyChangeListener(String arg0,
        PropertyChangeListener arg1) {
    // TODO Auto-generated method stub

}

}

但它显示错误:方法firePropertyChange(String)未定义类型PresentationModel PresentationModel.java

尝试使用以下jar文件:

  1. robobinding-0.8.4-罐与 - dependencies.jar
  2. robobinding-0.8.4-快照罐与 - 依赖
  3. robobinding-0.8.5-快照罐与 - 依赖
  4. 以下是错误的屏幕截图:

    Error Trace

    任何帮助将不胜感激。

    感谢。

2 个答案:

答案 0 :(得分:1)

现在我可以运行该应用程序。

以下是解决方案:

https://github.com/RoboBinding/AndroidMVVM/issues/1

感谢。

答案 1 :(得分:1)

如果您不想使用AspectJ,您应该创建一个PresentationModelChangeSupport属性,并调用firePropertyChange()方法:

@org.robobinding.annotation.PresentationModel
public class PresentationModel implements HasPresentationModelChangeSupport {

    protected PresentationModelChangeSupport mChangeSupport;
    private String name;

    public PresentationModel()
    {
        mChangeSupport = new PresentationModelChangeSupport(this);
    }

    public String getHello() {
        return name + ": hello Android MVVM(Presentation Model)!";
    }

    public void sayHello() {
        mChangeSupport.firePropertyChange("hello");
    }

    @Override
    public PresentationModelChangeSupport getPresentationModelChangeSupport() {
        return mChangeSupport;
    }
}