【发布时间】:2012-10-23 00:12:56
【问题描述】:
我显然是应用程序开发的新手,但基本上我想做的是制作一个简单的应用程序,它有一个名为“查看地图”的按钮,按下时会打开谷歌地图。
到目前为止,我已经编写了一个带有“查看地图”按钮的应用程序,该按钮在按下时仅在按钮下方返回一些文本,如下所示。
我还制作了另一个应用程序,它使用 Google Developers 的tutorial 在应用程序打开时显示 Google 地图。
当我尝试将这两个应用程序组合在一起时,我的问题出现了。打开时它不会只显示按钮,而是在主屏幕中同时显示按钮和地图,如下所示:
按下按钮时什么也不做。
我试图做的是使用 OnClickListener 在按下按钮时加载地图,但这显然不起作用。我认为它与我的 activity_main 类有一些非常基本的关系,但我需要帮助对其进行整理,以便在加载应用程序时不会立即创建地图。
我的 activity_main 类如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="**My Key**"
android:clickable="true"
android:enabled="true" />
<Button
android:id="@+id/buttonMap"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="View Map" />
</RelativeLayout>
我的 MainActivity 类看起来像这样:
public class MainActivity extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonMap = (Button) findViewById(R.id.buttonMap);
buttonMap.setOnClickListener(mapListener);
}
private OnClickListener mapListener = new OnClickListener() {
public void onClick(View v) {
MapView mapView = (MapView) findViewById(R.id.mapView);
mapView.setBuiltInZoomControls(true);
}
};
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
感谢您的帮助,干杯。
【问题讨论】:
-
丹,我需要了解更多关于你想要做什么的信息。您希望 Google 地图加载到您的应用程序中,还是希望在用户单击您的按钮时打开实际的 Google 地图应用程序? (请注意,调用实际的 Google Maps 应用程序涉及一些仅适用于美国位置的黑客攻击,上次我检查过。)其次,我看到您正在使用 MapActivity,它是 Google Maps API v2 的一部分,正在被 Google 弃用支持 v3,它不需要 API 密钥,可以通过 WebView 在 JavaScript 中访问。您使用 Maps v2 的任何原因?
-
哎呀 NVM 关于 MapActivity。我猜他们为 Maps API V3 保留了它,但我认为他们也在弃用它。在我的一个项目中,我实际上在 WebView 中实现了一个 JavaScript 地图,因为这是我的信念。 :-(
-
我只想在按下“查看地图”按钮时在我的应用程序中使用 Google Maps API。我已经让应用程序在打开应用程序时加载 API,但是我不知道如何制作它,以便除非按下“查看地图”按钮,否则不使用 API。我不会撒谎,你回复的第二部分很搞笑,哈。