如何在Android中的同一活动中单击搜索按钮后显示谷歌地图

时间:2014-04-12 06:44:00

标签: android google-maps android-fragments

我想在点击按钮后调用Map.java类来显示Google Map。我使用了onClickListener。然后我用一个Intent开始一个活动。对于这个类,我创建了一个布局,在内部,我在流布局中声明了一个片段。

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

然后我在清单中声明权限如下:

// Permission and Uses-features
<uses-feature android:glEsVersion="0x00020000" 
        android:required="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<meta-data android:name="com.google.android.maps.v2.API_KEY"
        android:value="I have a key which provide by Google " />
<meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

但是在模拟器上无法加载它并给我一些跟随错误:

1--- "unfortunately stopped application" to load .
2--- "could not get wglGetExtensionsStringARB"
3---  "Could not initialize OpenglES emulation, using software renderer".
4---  " Failed to create Context 0x3005"

3 个答案:

答案 0 :(得分:0)

像这样更改xml代码:

<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

如果要显示地图,则必须使用真实物理设备而不是模拟器

运行应用程序

答案 1 :(得分:0)

将片段android:visibility视为GONE,并将点击设置可见性上的按钮设为Visible <fragment android:id="@+id/map" android:name =&#34; com.google.android.gms.maps.SupportMapFragment&#34; {{1 }}

答案 2 :(得分:0)

您更改了XML代码

<fragment android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="com.google.android.gms.maps.MapFragment"></fragment>

在清单

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="19" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

您应该在清单中声明您的活动。

在您的活动课程中

gMap =((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

在真实设备中运行您的项目。