2010-06-16 13 views
0

Je développe une application qui affiche un chemin sur une carte, déterminé par un fichier KML. Plus précisément, dans le MapActivity cela commence la carte:Android Maps Précédent Button

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

    Uri uri = Uri.parse("geo:0,0?q=http://urltokml"); 
    Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri); 
    mapIntent.setData(uri); 

    startActivity(Intent.createChooser(mapIntent, kmlFile)); 
    finish(); 
} 

Les charges de carte fine et au bout de quelques secondes, le chemin décrit par le KML apparaît. Le problème est que, lorsque j'appuie sur le bouton "Retour", il ne revient pas à l'écran précédent mais cache à la place le recouvrement KML. Si vous appuyez de nouveau sur le bouton "Retour", l'écran précédent réapparaît.

Des idées pour résoudre ce problème?

Répondre

0

Dépend de la version de l'API que vous utilisez ... dans les versions ultérieures, il existe une méthode "OnBackPressed" que vous pouvez remplacer dans votre activité pour ajuster le comportement du dos.

0

C'est parce que vous commencez votre activité et le chargement d'une carte vierge

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

puis la création d'une intention de lancer une NEW carte avec le fichier kml

Uri uri = Uri.parse("geo:0,0?q=http://urltokml"); 
    Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri); 
    mapIntent.setData(uri); 

    startActivity(Intent.createChooser(mapIntent, kmlFile)); 
    finish(); 
} 

Alors qu'est-ce qui se passe quand vous répondez, c'est qu'il quitte la seconde carte (avec le fichier kml) et retourne à la première carte (c'est vide).

+0

J'appelle maintenant Uri uri = Uri.parse ("geo: 0,0? Q = http: // urlhere"); Intention mapIntent = nouvelle intention (Intent.ACTION_VIEW, uri); mapIntent.setData (uri); StartActivity (Intent.createChooser (mapIntent, "Title")) à partir d'une autre activité (une non mappage) mais le bouton précédent a le même effet. – amr317

+0

À ce stade, c'est le programme intégré dans Maps, je ne sais pas comment il gère la demande. – CaseyB