Google Map on tabhost

2

I'm trying to make a mobile application that puts me on a map the parks of a city. I get them to position them correctly, however, now I would like to put that map on a tab. For this I do the following in the oncreate of the activity of tabs:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    tabHost= (FragmentTabHost) findViewById(android.R.id.tabhost);
    tabHost.setup(this, getSupportFragmentManager(),android.R.id.tabcontent);

    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(getString R.string.label_listado)),ListadoFragment.class, null);

    tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator(getString(R.string.label_geoposionar)),MapsFragment.class, null);

}

The MapsFragment class:

public class MapsFragment extends Fragment {

private Callbacks mCallback = null;
public ArrayList<Parque> listado;

public static MapsFragment newInstance() {
    MapsFragment fragment = new MapsFragment();

    return fragment;
}

public MapsFragment() {
}


@Override
public View onCreateView(LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
    View rootView=null;
    GoogleMap googleMap=mapa.newInstance(listado);
    mapa.newInstance(listado);
    mapa.onMapReady(googleMap);

    rootView = inflater.inflate(R.layout.activity_maps,
        container, false);
    return rootView;
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);

       }

 public interface Callbacks {
    public void onMapReady(GoogleMap googleMap);


 }
}

And the activity of the map:

 public class MapsActivity extends android.support.v4.app.FragmentActivity   
 implements OnMapReadyCallback {
 public GoogleMap mMap;
 public static String coordenadas="";
 public ArrayList<parque> listado;

 public  GoogleMap newInstance(ArrayList<parque> listado) {
    listado=listado;
   return 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);
    Intent intent = getIntent();
    onMapReady(mapFragment.getMap());
 }


@Override
public void onMapReady(GoogleMap googleMap) {
   mMap = googleMap;
   //mMap=((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
           ArrayList<parque> listado=listado;
    String defecto="";
    String[] latlong = bar_defecto.split(" ");
    double latitud = Double.parseDouble(latlong[0]);
    double longitud = Double.parseDouble(latlong[1]);
    LatLng defecto_latlong=new LatLng(latitud,longitud);
    LatLng coordenadas;
    for(int x=0;x<listado.size();x++) {
        parque p = listado.get(x);
        coordenadas = bar.getmCoordenadas();
                   if (coordenadas.compareTo("-")!=0 && coordenadas!=null && bar.getmNombre()!=null) {
            latlong = coordenadas.split(" ");
            latitud = Double.parseDouble(latlong[0]);

            longitud = Double.parseDouble(latlong[1]);

            coordenadasBar = new LatLng(latitud, longitud);
            mMap.addMarker(new MarkerOptions().position(coordenadas).title(bar.getmNombre()));
        }
    }
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(defecto_latlong,  
   12.0f));

  }
}

How can you insert a map on a tab?

    
asked by adamista 26.04.2016 в 18:39
source

2 answers

-1

I found the solution of how to create a map fragment and insert it into a tab. It's answer 2 from: link

    
answered by 26.04.2016 / 20:47
source
0

The option to add your map within a tab must not be using Activity, it must be a Fragment, it is not an option to use an activity.

You can do it with TabLayout that comes within the "Design" library of Android and a viewpager.

Here is an example (English):

link

    
answered by 26.04.2016 в 19:18