2017-07-15 7 views
-1

J'ai l'activité de l'onglet et dans le premier onglet je veux montrer un fragment de la carte. mon problème est que je ne sais pas comment faire cela. J'ai un fragment de carte qui étend supportMapFragment, mais je ne sais toujours pas comment afficher ce fragment dans l'onglet.Android - comment montrer la carteFragment dans l'action de l'onglet

c'est l'onglet principal d'activité

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 
     switch (position) { 
      case 0: 
       // here i want to show the mapFragment. how should i do that? 
       return new Maps(); 
      case 1: 
       return new GroupsFragment(); 
      default: 
       return new Fragment(); 
     } 
    } 

EDIT MapActivity

public class MapsActivity extends SupportMapFragment implements OnMapReadyCallback { 

private static final int RC_LOCATION = 1; 
private GoogleMap mMap; 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    getMapAsync(this); 
} 



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

    addMyLocation(); 

} 

private boolean checkLocationPermission(){ 
    String[] permissions = new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}; 
    //If No Permission-> Request the permission and return false. 
    if (ActivityCompat.checkSelfPermission(getContext(), 
      android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

     ActivityCompat.requestPermissions(getActivity(), permissions, RC_LOCATION); 
     return false; 
    } 
    return true;//return true if we have a permission 
} 

private void addMyLocation(){ 
    if (!checkLocationPermission())return; 
    mMap.setMyLocationEnabled(true); 
    mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() { 
     @Override 
     public boolean onMyLocationButtonClick() { 
      if (mMap.getMyLocation()!=null) { 
       Location myLocation = mMap.getMyLocation(); 
       Toast.makeText(getActivity(), "" + myLocation.getLatitude(), Toast.LENGTH_SHORT).show(); 
      } 
      return false; 
     } 
    }); 
} 
@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED){ 
     //noinspection MissingPermission 
     addMyLocation(); 
    } 
} 

}

+0

Affichez votre fragment Maps – FAT

+0

J'ai publié ma carteActivité –

Répondre

0

Essayez cette

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 
     switch (position) { 
      case 0: 
       SupportMapFragment mapFragment = SupportMapFragment.newInstance(); 
       mapFragment.getMapAsync(new OnMapReadyCallback() { 
        @Override 
        public void onMapReady(GoogleMap googleMap) { 

        } 
       }); 

       return mapFragment; 
      case 1: 
       return new GroupsFragment(); 
      default: 
       return new Fragment(); 
     } 
    } 

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