2010-06-16 161 views
0

我正在開發一個應用程序,顯示由KML文件確定的地圖上的路徑。具體地,在MapActivity正在啓動的圖:Android地圖後退按鈕

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(); 
} 

地圖加載罰款,幾秒鐘之後,由KML描述的路徑出現。問題是,當我按下「返回」按鈕時,它不會返回到前一個屏幕,而是隱藏KML疊加層。如果再次按下「返回」按鈕,它將返回到前一個屏幕。

如何解決這個任何想法?

回答

0

取決於您正在使用的API的版本...在更高版本中有一個「OnBackPressed」方法,您可以在活動中重寫以調整後退行爲。

0

這是因爲你開始你的活動,並裝載空白地圖

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

,然後創建一個Intent推出地圖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(); 
} 

所以發生了什麼當你回擊的時候,它是離開第二個地圖(用kml文件)並返回到第一個地圖(這是空白的)。

+0

我現在致電 Uri uri = Uri.parse(「geo:0,0?q = http:// urlhere」); 意圖mapIntent = new Intent(Intent.ACTION_VIEW,uri); mapIntent.setData(uri); startActivity(Intent.createChooser(mapIntent,「Title」)); 來自其他活動(非映射的活動),但後退按鈕具有相同的效果。 – amr317 2010-06-16 20:23:55

+0

在這一點上它是內置的地圖程序,我不知道它如何處理請求。 – CaseyB 2010-06-16 20:31:06