0

3ページ目にアプリケーションにコードを統合しようとしています。ポケットベルアダプターの使用。ページにアクセスできますが、マップはできません。白い画面のみが表示され、Googleロゴは表示されません。ページャアダプタ内のフラグメントにGoogleマップが表示されない

activity_maps2.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#1c1356" 
android:orientation="vertical"> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:map="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/map" 
android:name="com.google.android.gms.maps.SupportMapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.porteradvertising.richmondmeltdown2.MapsActivity" /> 

</LinearLayout> 

Maps_Activity.Java

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

private GoogleMap mMap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps2); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 


/** 
* Manipulates the map once available. 
* This callback is triggered when the map is ready to be used. 
* This is where we can add markers or lines, add listeners or move the camera. In this case, 
* we just add a marker near Sydney, Australia. 
* If Google Play services is not installed on the device, the user will be prompted to install 
* it inside the SupportMapFragment. This method will only be triggered once the user has 
* installed Google Play services and returned to the app. 
*/ 
@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney 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)); 
} 

}

ポケットベルAdapter.Java

public class PagerAdapter extends FragmentPagerAdapter { 

String title; 
Context context; 

public PagerAdapter(FragmentManager fm) { 
    super(fm); 


} 

@Override 
public android.support.v4.app.Fragment getItem(int arg0) { 
    switch (arg0) { 
     case 0: 
      return new FragmentTwo(); 
     case 1: 
      return new FragmentOne(); 
     case 2: 
      return new android.support.v4.app.Fragment(); 
     case 3: 
      return new FragmentThree(); 
     default: 
      break; 
    } 
    return null; 
} 

@Override 
public int getCount() { 
    return 4; 
} 

String[] titles = {"Home", "Schedule","Map","General Info"}; 

@Override 
public CharSequence getPageTitle(int position) { 
    return titles[position]; 
} 
} 

答えて

0

まず、あなたはoを代わりにフラグメントを拡張する必要がありますあなたのMapsActivity中のF FragmentActivity

case 2: 
      return new MapsActivity(); 

代わりの

case 2: 
      return new android.support.v4.app.Fragment(); 

とあなたのMapsActivityのonCreateViewにコード

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_maps2,container,false); 
     MapView mapView = (MapView) view.findViewById(R.id.map); 
     mapView.onCreate(savedInstanceState); 
     mapView.onResume(); // needed to get the map to display immediately 
     return view; 
    } 

のこのスニペットを使用して、あなたを持っていることを確認してくださいを使用このようなマニフェストのAPIキー

<application 
.... 
...> 
<meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="YOUR_API_KEY" /> 
+0

感謝!あなたは私の命を救いました!!! –

関連する問題