2016-03-08 69 views
0

我是Android編程新手,我嘗試使用Android Studio創建應用程序。如何打開地圖活動並設置其他活動的位置?

我有一個列表視圖,其中包含幾個項目。一旦一個項目被點擊,它會顯示一個警告對話框,其中包含被點擊項目的詳細信息。所有這些都工作得很好。問題是,警報對話框上有一個按鈕,它應該導致我創建的地圖活動指向從調用它的活動中給出的確切位置。它會調用並打開地圖活動,但不會將焦點放到所單擊項目的位置。相反,如果GPS未啓用,它將轉到我設置的默認標記,如果GPS啓用,則轉到用戶的位置。

任何幫助將不勝感激。先謝謝你。

我試圖代碼的這些行,但而不是打開地圖活動我做了,它會打開谷歌地圖應用程序:

Uri newIntentUri = Uri.parse("geo:13.621085324664428, 123.21271363645793?z=20"); 
Intent intent = new Intent(Intent.ACTION_VIEW, newIntentUri); 
startActivity(intent); 
+0

你能提供一些顯示問題的代碼嗎?請參閱https://stackoverflow.com/help/mcve –

+0

@TimPenner我更新了我的帖子。我在某處添加了一些行。但它改爲打開Goog​​le地圖應用程序。它將重點放在我想要的位置,但我想在我製作的應用程序中的地圖活動中顯示它。 –

回答

0

好吧,我發現這個代碼的地方,現在它的正常工作。

我加入這個組的其他活動代碼的調用與座標圖:(在我的情況,我把它命名爲schoolsList.java和我的地圖nagaCityMapping.java)

double newLat = 13.621085324664428; 
double newLong = 123.21271363645793; 

LatLng fromPosition = new LatLng(newLat,newLong); 

Bundle args = new Bundle(); 
args.putParcelable("longLat_dataProvider", fromPosition); 

Intent i = new Intent(schoolsList.this, nagaCityMapping.class); 
i.putExtras(args); 
startActivity(i); 

,然後我收到了像我這樣的地圖活動的意圖:

Intent i = getIntent(); 
LatLng ll = i.getParcelableExtra("longLat_dataProvider"); 

if (i != null && ll != null) 
{ 
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(ll.latitude, ll.longitude), 20)); 

    LatLng defaultLoc = new LatLng(ll.latitude, ll.longitude); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(defaultLoc)); 
} 
0

docs,該ACTION_VIEW意圖將執行你所看到的動作:

公共靜態最終字符串ACTION_VIEW

在API級別1 活動操作:顯示數據給用戶。這是對數據執行的最常見操作 - 這是您可以在一段數據上使用的通用操作,以獲得最合理的事情發生。例如,當用於聯繫人條目時,它將查看條目;當在mailto:URI上使用時,它將顯示一個填充了由URI提供的信息的撰寫窗口;當與tel:URI一起使用時,它將調用撥號程序。

請參閱adding maps to your applicationthis example Android的教程:

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap 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); 
    } 

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

     // Add a marker in Sydney, Australia, and move the camera. 
     LatLng sydney = new LatLng(-34, 151); 
     mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
    } 
} 

的基礎是explained here

+0

我已經有一個地圖活動,它正在工作,我實際上要問的是如何從另一個活動中調用此地圖(我在我的應用程序中製作的地圖),並將焦點設置到我想要的位置。 –

+0

我明白了。我發佈了我的答案,我終於開始工作了。不管怎麼說,還是要謝謝你。 –

相關問題