【问题标题】:ItemizedOverlay that has more fields具有更多字段的 ItemizedOverlay
【发布时间】:2012-09-12 15:24:31
【问题描述】:

如您所知,叠加项目只有标题、消息和可绘制图像。

我想创建一个自定义项目,例如还具有以下字段:ID、街道、城市、国家。

在调用 OnTap 后,我想在列表视图中显示该信息,因此在您点击项目后,会出现一个列表,其中包含指定项目的 ID、街道、城市和国家/地区。

因此,据我了解,我必须创建另一个将显示该列表的活动,这意味着我必须通过 Parceling itemizedoverlay 类将数据发送到 listActivity。

我很难考虑如何去做,因为当我创建构造函数时:

public MyItemizedOverlay(Parcel source){
     /*
      * Reconstruct from the Parcel
      */
     Log.d("MyTag", "ParcelData(Parcel source): time to put back parcel data");

     ID = source.readInt();
     imagePath = source.readInt();
     distance = source.readFloat();

}

我收到以下错误(意味着我必须调用基本构造函数):

隐式超级构造函数 ItemizedOverlay() 未定义。必须显式调用另一个构造函数

结论:很有可能有另一种解决方案,我相信人们已经遇到过这种情况,所以我很高兴听到你的解决方案。

【问题讨论】:

    标签: java android overlay parcelable


    【解决方案1】:

    你需要通过以下方式定义两个构造函数,这个方法对我有用:

    public HelloItemizedOverlay(Drawable defaultMarker) {
      super(boundCenterBottom(defaultMarker));
    }
    public HelloItemizedOverlay(Drawable defaultMarker, String ID, String city, String country) {
      super(boundCenterBottom(defaultMarker));
      #do something with the ID, city, country. Possibly store them in instance variables
    }
    

    【讨论】:

    • 你知道我调用基本构造函数时它做了什么吗?
    • 基本构造函数是什么意思?你指的是第一个还是第二个构造函数?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多