私はリスト(ListFragment内)と対応する座標のリストを持っていて、それらの1つが押されたときに新しいマップアクティビティを開始したいと思います。アプリ内の特定の場所でマップアクティビティを開始するにはどうすればよいですか?
public void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(getActivity(), "Item: " + locations[position], Toast.LENGTH_SHORT).show();
Intent eventActivity = new Intent(getContext(), MapsActivity.class);
startActivity(eventActivity);
}
項目のいずれかをクリックしたときに、それはアプリ内で(0,0)にマップを開いて、その後、場所の名前が表示されるように現在、私はそれを持っています。どのように私は(私が持っている)場所に対応する座標にマップを開くことができますか?
Ajeet Choudharyに感謝します。解決済み。以下の解決策。
MapFragment.java
public class MapFragment extends ListFragment{
...
LatLng[] coordinates = new LatLng[] {
new LatLng(..., ...),
new LatLng(..., ...),
new LatLng(..., ...),
...
};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayAdapter<String> adapter = new MapAdapter(getActivity(), locations);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(getActivity(), "Item: " + locations[position], Toast.LENGTH_SHORT).show();
Intent eventActivity = new Intent(getContext(), MapsActivity.class);
eventActivity.putExtra("latlng", coordinates[position]);
startActivity(eventActivity);
}
}
MapsActivity.java
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker and move the camera.
LatLng location = getIntent().getExtras().getParcelable("latlng");
mMap.addMarker(new MarkerOptions().position(location).title("Marker"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(location));
}
}
あなたはその特定の場所または住所のLatlngしか持っていませんか? –
両方。私は、場所の名前、その物理的なアドレス、およびLatLngのリストを持っています。ロケーション名と物理アドレスがリストに表示されます。 – KuroMajutsu
MainActivityとは何ですか?あなたのクラスの場合は、対応するコードを質問に追加してください。 –