2

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

我正在使用 android“ RoboBinding ”库来绑定 Model-View 和 View-Model。

我已使用此处的示例应用程序供参考。

这是我的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

}

}

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

尝试使用以下 jar 文件的示例:

  1. robobinding-0.8.4-jar-with-dependencies.jar
  2. robobinding-0.8.4-SNAPSHOT-jar-with-dependencies
  3. robobinding-0.8.5-SNAPSHOT-jar-with-dependencies

这是错误的屏幕截图:

错误追踪

任何帮助将不胜感激。

谢谢。

4

2 回答 2

1

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

以下是解决方案:

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

谢谢。

于 2014-08-26T12:36:16.743 回答
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;
    }
}
于 2015-06-19T18:51:53.940 回答