2016-03-24 1 views
0

Googleマップフラグメントで基本的なアクティビティを作成しようとしています。今私はこれを持っている:これを生産しているマップフラグメントアクティビティの使用

public class MainScreen extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_screen); 

     // add the map fragment to the activity 
     if (findViewById(R.id.fragment_container) != null) { 
      if (savedInstanceState != null) { return; } 
      getSupportFragmentManager().beginTransaction() 
      .add(R.id.fragment_container, new FragmentGoogle()).commit(); 
     } 
    } 
} 

public class FragmentGoogle extends android.support.v4.app.Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.map_google, container, false); 
    } 
} 

:どのように私はフラグメント自身と対話することができますされ

enter image description here

私の質問?私はシドニーを拡大したいと思います。 MainScreen.classまたはFragment.classにコードを記述する必要がありますか?どちらの方法を使うべきですか?それは私の初めての断片の作業です。

+0

.xmlも含める必要があります。また、Androidのチュートリアル用の公式のGoogleマップや、Androidのハイブ、vogella、codepathなどの無料のチュートリアルから始めることもできます。これは難しい問題ではありません。 – aldok

+1

フラグメントのクラスを作成する必要はありませんが、メインのアクティビティクラスから直接行うことができます。このチュートリアルを試してみることをお勧めします。http://www.tutorialspoint.com/android/android_google_maps.htm –

答えて

1

独自のFragmentGoogleを作成する必要はありません。 com.google.android.gms.maps.SupportMapFragmentを使用して、アクティビティコードからコントロールできます。レイアウトの

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/map" 
    tools:context=".MapsActivity" 
    android:name="com.google.android.gms.maps.SupportMapFragment" /> 

、その後、アクティビティコードで:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     // Add a marker in Sydney, Australia, and move the camera. 
     LatLng sydney = new LatLng(-34, 151); 
     mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
    } 
} 
コードが起動し、Googleのほとんどの機能を使用するのに十分である this tutorialから取られ

Android APIをマップするには、次の手順に従います。

関連する問題