如何清除/复位的Andr​​oid的ItemizedOverlay? [英] How to clear / reset an ItemizedOverlay in Android?

查看:132
本文介绍了如何清除/复位的Andr​​oid的ItemizedOverlay?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个创建ItemizedOverlay和地图程序。一切都在启动时工作正常。

I have a program that is creating an ItemizedOverlay and a map. Everything works fine upon startup.

当您关闭ANDE重新打开应用程序中,我使用从我的服务器onRestart()来获得更新的信息和更新地图。的问题是,在这一点上,仍然ItemizedOverlay包含旧的项目,并随后进行到新数据添加到现有的数据。

When you close ande re-open the app, I am using onRestart() to get updated information from my server and update the map. The problem is that at this point, the ItemizedOverlay still contains the old items, and then proceeds to add the new data to the existing data.

我要寻找一种方式来清除出ItemizedOverlay。似乎没有成为一个ItemizedOveraly.clear,或任何类似的功能。

I am looking for a way to clear out the ItemizedOverlay. There does not appear to be an ItemizedOveraly.clear, or any similar function.

有关如何我能做到这一点的想法/它为什么不是明摆着的吗?

Ideas about how I can do this / why is it not obvious ?

推荐答案

一个典型的自定义背景画面看起来是这样的。它封装在一个列表显示在地图上的各种OverlayItems。

A typical custom overlay looks like this. it encapsulates the various OverlayItems displayed on the map in a list.

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem>{

    private List<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

    public MyItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));        
    }

    @Override
    protected OverlayItem createItem(int i) {
        return mOverlays.get(i);
    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }

    public void removeOverlay(OverlayItem overlay) {
        mOverlays.remove(overlay);
        populate();
    }


    public void clear() {
        mOverlays.clear();
        populate();
    }

    @Override
    public int size() {
        return mOverlays.size();
    }
}

方法可以接触到添加/删除单个overlayitems,也全部删除overlayitems(清法)。

Methods can be exposed to add / remove individual overlayitems, but also the remove all overlayitems (clear method).

删除单个overlayitem

MyItemizedOverlay sitesOverlay =  (MyItemizedOverlay ) map.getOverlays().get(0);
sitesOverlay.removeOverlay(overlay);

添加单个overlayItem

MyItemizedOverlay sitesOverlay =  (MyItemizedOverlay ) map.getOverlays().get(0);
sitesOverlay.addOverlay(new OverlayItem(p, "title", "snippet"));

删除所有overlayItems

MyItemizedOverlay sitesOverlay =  (MyItemizedOverlay ) map.getOverlays().get(0);
sitesOverlay.clear();

这篇关于如何清除/复位的Andr​​oid的ItemizedOverlay?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆