2010-06-10 143 views
14

有没有一种方法来显示MapView而不扩展MapActivity?我有其他Activity类,我正在扩展,我不想改变这个......我已经看到你可以使用MapActivity来膨胀,但是没有找到关于如何去做的任何spec/examples。没有扩展MapActivity的MapView

+0

哪个是其他类? – Macarse 2010-06-10 11:43:21

+0

我自己的,这是设置不同的东西,有很多的功能,我在活动中使用的对象 – 2010-06-10 11:45:36

+0

我可以用MapActivity扩展我的课程,但这意味着我所有的活动都会扩展它... – 2010-06-10 12:02:54

回答

6

有没有办法在不扩展MapActivity的情况下显示MapView ?

不是我所知道的。

我可以延长我的类 MapActivity,但是这将意味着所有 我的活动将扩展它

然后,你需要重构你的代码,这样,你的活动并不都来自继承你自己的基类。继承不是一种非常灵活的OO技术,特别是在Java中。

+3

我觉得非常不幸的是,一些“官方”Android组件需要你的活动继承特定的基类,而MapActivity和FragmentActivity是两个特别令人讨厌的例子。 – Ralf 2012-07-30 16:40:16

+0

“然后你需要重构你的代码,这样你的活动不会全部从你自己的基类继承。继承不是一个非常灵活的OO技术,特别是在Java中。”这是令人失望的,恰恰是Android SDK不适用这个 – Ixx 2012-11-07 15:30:10

+0

我的意思是,这是错误的和令人讨厌的。仅仅因为您在某处放置了地图视图,整个活动必须扩展MapActivity。把所有我的活动的通用代码放在一个普通的超类中是有道理的,而不是为了避免继承,只是因为Android使用不正确。接下来,可能是TextViewActivity? – Ixx 2012-11-22 20:00:22

0

一个实用的方法是制作原始基本活动的两个版本,它们之间的唯一区别是一个扩展Activity和另一个扩展MapActivity(与ListActivity相同的问题)。

有重复的代码。这是我知道的难闻的气味。但它们几乎完全相同,只需复制整个文件并在更改基本活动时进行微小的修改即可。