如何使用Android应用上的按钮打开Goog​​le地图

时间:2014-12-04 16:45:00

标签: android button maps onclicklistener

我试图使用名为" Map"的按钮制作应用程序。一旦按下就会显示城市地图。到目前为止,我已经制作了一个应用程序,其中包含地图按钮和我的地图的单独应用程序,该应用程序使用了Google Developers'在打开应用程序时显示地图的教程。当我尝试组合这两个应用时,我遇到了麻烦。我正在使用OnClickListener,但我不知道应该放什么,这样按下按钮后就会显示地图。

修改

下面是地图的MapFragment类:

    public class MapFragment extends FragmentActivity
    {
        private GoogleMap mMap;
        private LatLngBounds ILOILO = new LatLngBounds(new LatLng(10.6, 122.466), new LatLng(10.716, 122.566));

        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }

        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View v = inflater.inflate(R.layout.map_layout, container, false);

            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
            mMap.setMyLocationEnabled(true);
            mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ILOILO.getCenter(), 10));

            if (mMap == null)
            {
                 Toast.makeText(this, "Google Maps not available", 
                     Toast.LENGTH_LONG).show();
            }

            return v;
        }
    }

这是我的地图XML文件:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map"
    map:uiCompass="false"
    map:uiTiltGestures="true"
    map:uiZoomControls="true"
    map:uiZoomGestures="true"
    map:uiRotateGestures="true"
    map:uiScrollGestures="false"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"/>

以下是我的MainActivity.java中的按钮:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageButton mapButton = (ImageButton) findViewById(R.id.mapButton);
    mapButton.setOnClickListener(mapListener);
}

private OnClickListener mapListener = new OnClickListener()
{   
    public void onClick(View v)
    {   
        Intent i = new Intent(MainActivity, MapFragment.class);
        startActivity(i);
    }
};

我已经修改了我的Manifest,因为我已经得到了#34;无法找到显式活动类(com.example.ipp.MapFragment);你有没有在AndroidManifest.xml中声明这个活动?&#34;错误。以下是我的清单。

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="MapFragment" >
        </activity>

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

问题

当我尝试点击&#34; Map&#34;按钮,它显示我的UI而不是显示我准备好的地图。

0 个答案:

没有答案