0

滑动 Google 地图视图后,我想转到另一个活动或屏幕。但它给了我例外。我正在尝试使用“ ViewPager ”API 来实现这一点。是否可以滑动到另一个活动。

例外情况:

Constructor.constructNative(Native Method) 07-23 12:22:08.906: E/AndroidRuntime(806): at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 07-23 12:22:08.906: E /AndroidRuntime(806): 在 android.view.LayoutInflater.createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906 : E/AndroidRuntime(806): 原因: java.lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 构造原生(本机方法)07-23 12:22:08.906:E/AndroidRuntime(806):在 java.lang.reflect.Constructor.newInstance(Constructor.java:415)07-23 12:22:08.906:E/AndroidRuntime (806): 在 android.view.LayoutInflater.createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E /AndroidRuntime(806):原因:java.lang.IllegalArgumentException:MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 构造原生(本机方法)07-23 12:22:08.906:E/AndroidRuntime(806):在 java.lang.reflect.Constructor.newInstance(Constructor.java:415)07-23 12:22:08.906:E/AndroidRuntime (806): 在 android.view.LayoutInflater.createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E /AndroidRuntime(806):原因:java.lang.IllegalArgumentException:MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 22:08.906: E/AndroidRuntime(806): 在 java.lang.reflect.Constructor.newInstance(Constructor.java:415) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 android.view.LayoutInflater .createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E/AndroidRuntime(806): 引起:java .lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 22:08.906: E/AndroidRuntime(806): 在 java.lang.reflect.Constructor.newInstance(Constructor.java:415) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 android.view.LayoutInflater .createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E/AndroidRuntime(806): 引起:java .lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 Constructor.newInstance(Constructor.java:415) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 android.view.LayoutInflater.createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 more 07-23 12:22:08.906: E/AndroidRuntime(806): Caused by: java.lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 Constructor.newInstance(Constructor.java:415) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 android.view.LayoutInflater.createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 more 07-23 12:22:08.906: E/AndroidRuntime(806): Caused by: java.lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E/AndroidRuntime(806): 引起:java。 lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多 createView(LayoutInflater.java:505) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 25 更多 07-23 12:22:08.906: E/AndroidRuntime(806): 引起:java。 lang.IllegalArgumentException: MapViews 只能在 MapActivity 的实例中创建。07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java:291) 07-23 12:22:08.906: E/AndroidRuntime(806):在 com.google.android.maps.MapView.(MapView.java:264) 07-23 12:22:08.906: E/AndroidRuntime(806): 在 com.google.android.maps.MapView.(MapView.java: 247) 07-23 12:22:08.906: E/AndroidRuntime(806): ... 28 更多

谢谢。

4

1 回答 1

0

您的日志清楚地说明了错误的原因:

原因:java.lang.IllegalArgumentException:MapViews 只能在 MapActivity 的实例中创建

换句话说:有你的Activityextend MapActivity

但是,除了明显的错误之外,您可能还想重新考虑您所追求的。即使你设法让 aMapView在 a 中工作ViewPager(这在技术上绝对不是不可能的),用户交互会是什么样子?aViewPager和都MapView使用滑动动作作为主要的用户交互方法。应该偏向哪一个?如果是ViewPager,则无法平移地图。反之亦然,如果您允许在地图上平移,则不能在不同页面之间滑动。

无论如何,只是一个想法。当然,这完全取决于你。顺便说一句,你可能对 GitHub 上的android-support-v4-googlemaps项目感兴趣,它可以让你MapViewFragment.

于 2012-07-23T08:54:44.313 回答