Fehler beim Einbinden von Google Maps in eine App

A

Androide231198

Ambitioniertes Mitglied
0
Hallo Zusammen,

ich habe versucht eine Map in eine App einzubinden. Folgendes ist der MainActivity Code:
Code:
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, OnMapReadyCallback {

    SupportMapFragment sMapFragment;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        sMapFragment = SupportMapFragment.newInstance();


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
        sMapFragment.getMapAsync(this);
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }




    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_map) {
            // Handle the camera action
            map map = new map();
            FragmentManager manager = getSupportFragmentManager();
            manager.beginTransaction().replace(R.id.relativelayout_for_fragment, map).commit();
        } else if (id == R.id.nav_location) {
            location_fragment location = new location_fragment();
            FragmentManager manager = getSupportFragmentManager();
            manager.beginTransaction().replace(R.id.relativelayout_for_fragment, location).commit();

        } else if (id == R.id.nav_events) {
            new_event_fragment events= new new_event_fragment();
            FragmentManager manager = getSupportFragmentManager();
            manager.beginTransaction().replace(R.id.relativelayout_for_fragment, events).commit();

        } else if (id == R.id.nav_calendar) {
            kalender_fragment kalendar = new kalender_fragment();
            FragmentManager manager = getSupportFragmentManager();
            manager.beginTransaction().replace(R.id.relativelayout_for_fragment, kalendar).commit();

        } else if (id == R.id.nav_chat) {

            chat_fragment chat =  new chat_fragment();
            FragmentManager manager = getSupportFragmentManager();
            manager.beginTransaction().replace(R.id.relativelayout_for_fragment, chat).commit();

        }
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {

    }
}

und das ist der Code der MapActivity:

Code:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;

import static de.androidnewcomer.partypeople.R.layout.fragment_gmaps;


/**
 * A simple {@link Fragment} subclass.
 */
public class map extends Fragment implements OnMapReadyCallback {

    @Nullable



    public View onViewCreated(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(fragment_gmaps, container, false);

    }

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

        MapFragment fragment = (MapFragment)getChildFragmentManager().findFragmentById(R.id.map);
        fragment.getMapAsync(this);

    }






    @Override
    public void onMapReady(GoogleMap googleMap) {

    }
}

leider wird folgende Zeile in der MapActivity Rot unterstrichen:

MapFragment fragment = (MapFragment)getChildFragmentManager().findFragmentById(R.id.map);
fragment.getMapAsync(this);

als Fehlermeldung kommt: Error:(35, 87) error: incompatible types: Fragment cannot be converted to MapFragment

könnt ihr mir bitte helfen
Danke & Schöne Grüße
Andro
 
Frage: Wie sieht dein XML (fragment_gmaps) aus.

Zur Zeit versuchst du ein Objekt vom Typ Fragment zu ein MapFragment zu casten. Das funktioniert nur, wenn das Object vom Type MapFragment ist.

Insgesamt sieht der Code sehr unstrukturiert aus. Google hat einen guten, deutschsprachigen Leitfaden herausgegeben, wie man eine Google Map implementiert.
Getting Started  |  Google Maps Android API  |  Google Developers
 
  • Danke
Reaktionen: swa00

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
1.015
Robby1950
R
Manny87
  • Manny87
Antworten
11
Aufrufe
164
swa00
swa00
5
Antworten
22
Aufrufe
1.420
590239
5
Zurück
Oben Unten