【问题标题】:MapView without extending MapActivity不扩展 MapActivity 的 MapView
【发布时间】:2010-06-10 11:35:01
【问题描述】:

有没有办法在不扩展 MapActivity 的情况下显示 MapView?我还有其他要扩展的 Activity 类,我不想改变它......我已经看到你可以使用 MapActivity 进行充气,但没有找到任何关于如何做到这一点的规范/示例。

【问题讨论】:

  • 我自己的,设置不同的东西,有很多功能,我在活动中使用的对象
  • 我可以使用 MapActivity 扩展我的课程,但这意味着我的所有活动都会扩展它...
  • 遇到了同样的问题。最后,另一个甚至不显示 MapView 的活动现在扩展了 MapActivity。但似乎没问题,还没有检测到开销/奇怪的行为。

标签: android google-maps


【解决方案1】:

有没有办法显示 MapView 不扩展 MapActivity?

我不知道。

我可以扩展我的课程 MapActivity,但这意味着所有 我的活动会扩展它

然后你需要重构你的代码,这样你的活动就不会全部继承自你自己的基类。继承不是一种非常灵活的 OO 技术,尤其是在 Java 中。

【讨论】:

  • 很遗憾,一些“官方”Android 组件要求您的 Activity 继承特定的基类,其中 MapActivity 和 FragmentActivity 是两个特别烦人的例子。
  • “那么你需要重构你的代码,这样你的活动就不会全部继承自你自己的基类。继承不是一种非常灵活的 OO 技术,尤其是在 Java 中。”令人失望的是,Android SDK 并没有应用这个
  • 我的意思是,这太错误了,太烦人了。仅仅因为你在某个地方放了一个地图视图,整个活动就必须扩展 MapActivity。将我所有活动的通用代码放在 1 个通用超类中是有意义的,而不是因为 Android 使用不正确而避免继承。接下来是什么,也许是 TextViewActivity?
  • 似乎这还不够,Android 只允许在应用程序/进程中进行 1 个地图活动(不是本主题的主题,但无论如何)。 Android 中的地图有什么问题??
【解决方案2】:

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

有重复的代码。我知道那是难闻的气味。但它们几乎相同,您可以简单地复制整个文件并在更改基本活动时进行微小的修改。

【讨论】:

    【解决方案3】:

    现在您可以使用片段在您的活动的任何地方显示地图,并且您的主要活动不必扩展地图活动。你在MapView in a Fragment (Honeycomb)中有一个实现

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多