如何覆盖第三方库类的方法?

时间:2015-03-09 20:27:36

标签: android mapquest

我正在使用MapQuest来查找包含地图的应用。但是,MapQuest缺少一些东西,所以我想改进它自己覆盖了库的一些方法。

有办法吗?

我立即想到创建自己的MyMap并从mapquest.MapView扩展它并重新实现我想要的方法。但是,在我的XML中,我有这个mapquest.MapView View,我不能只改为MyMap。

似乎我缺少一些基本的东西,或者实际上不可能。

任何帮助?

2 个答案:

答案 0 :(得分:0)

这应该只作为最后的手段来完成,但是您可以复制要更改的类的源代码,并使用完全相同的包声明和类名创建它的副本。您还需要确保类加载器优先于您的自定义类。我认为Android Studio很有可能会为您解决这个问题。

应该发生的事情是:首先加载库类,然后你的类重写它。

答案 1 :(得分:0)

在我的具体案例中,我发现可以这样做:

MapView map;
...
map.addMapViewEventListener(new MapView.MapViewEventListener() {
    @Override
    public void moveStart(MapView mapView) {
        // do something
    }
...

然而,这些方法对我来说还不够,这实际上并没有回答我的问题。