MapFragment를 사용하여 내 앱에 GoogleMap을 표시했습니다.

이 기사에서 전제로 하고 있는 것



Android Studio 3.0.1에서 안드로이드 개발을 공부하고 있습니다.
Fragment를 이해할 필요가 있다는 것을 깨닫고 Fragment를 사용하여 탭을 구현하는 자습서 (?)을 사경했습니다.

Google Map Activity 추가



AndroidStudio 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭 → New → Google → Google Map Activity를 클릭하여 프로젝트에 GoogleMap 활동을 추가합니다.
생성된 google_maps_api.xml에 정중하게 "TODO: Before you run your application, you need a Google Maps API key.To get one, follow this link, follow the directions and press "Create"at the end:"설명서와 함께 API 키 취득의 URL이 쓰여져 있었으므로, 그 페이지로부터 API 키를 취득.
키를 다음 곳에 추가.

google_maps_api.xml
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">ここ</string>

MainActivity.java에서 com.google.android.gms.maps.MapFragment; 를 import.
FragmentTabHost#addTab()의 제 2 인수에 Tab의 Content가 되는 클래스를 건네주고 있으므로, MapFragment.class 를 건네준다.
에뮬레이터를 시작하고 GoogleMap을 추가한 “TAB 3”을 선택하면 아래 이미지와 같이 GoogleMap이 표시되었습니다!


실제 3줄에 손을 추가하기만 하면 GoogleMap을 추가할 수 있었습니다. 대단해.

최종 MainActivity.java



MainActivity.java

package com.example.kouhei.tabapplication;

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.os.Bundle;
import com.google.android.gms.maps.MapFragment; // MapFragmentをimport

public class MainActivity extends FragmentActivity {
    private FragmentTabHost mTabHost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        mTabHost = (FragmentTabHost)findViewById(R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), R.id.tabContent);

        // "FragmenteTab"は自分で実装するクラス
        // addTab()の第一引数がTabSpec、第二引数は表示するFragmentをclass名で渡す。第三引数はFragmentで読み込むデータをBundleで渡す。
        // TabSpecはタブの情報
        // setIndicator()はタブのView
        mTabHost.addTab(
                mTabHost.newTabSpec("tab1").setIndicator("Tab 1", getDrawable(R.drawable.ic_spa_black_24dp)),
                FragmentTab.class,
                null);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab2").setIndicator("Tab 2", getDrawable(R.drawable.ic_sentiment_satisfied_black_24dp)),
                FragmentTab.class,
                null);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab3").setIndicator("Tab 3", getDrawable(R.drawable.ic_android_black_24dp)),
                MapFragment.class, // ここに書いてあったFragmentTabを書き換えました。
                null);
    }
}

좋은 웹페이지 즐겨찾기