1
私は、マーカーのクリック方法で一連のマップアクティビティを持っています。クリックするとマーカーがデータベースから追加され、新しいActivity
が開きます。私が抱えている問題は、現在の場所を別のクリックイベントにすることです。Googleマップのマーカーのクリックイベントのアクションが異なります。api
2番目のマーカー(marker2)を作成しようとしましたが、それを使用していますが、これを正しく処理しているとは思われません。以下のコードはHashmap
で解決しようとしていますが、正しくできないようです。私は他の部分と同じデータベースから詳細を見つけようとしませんが、何も続くとアプリがクラッシュし、ビールのアプリが停止し続けると言うことの原因となっている現在の場所をクリックしてください
//This is the onclick method- i tried using an if statment if the value is not there to call the second marker.
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
String venueID = mMarkerMap.get(marker.getId());
String venueName = marker.getTitle();
Intent intent = new Intent(MapsActivity.this, viewbeverageActivity.class);
intent.putExtra(VENUE_NAME, venueName);
intent.putExtra(VENUE_ID, venueID);
startActivity(intent);
if(venueID == null)
{
onMarkerClick2(marker2);
}
return false;
}
public boolean onMarkerClick2(Marker marker2) {
mMap2.getClass();
return false;
}
});
//This is the location listener for the current location
public boolean onMarkerClick(Marker marker) {
return false;
}
private class MyLocationListener implements LocationListener{
public void onLocationChanged (Location loc){
if (loc != null){
Toast.makeText(getBaseContext(),
"Current Location : Lat: " + loc.getLatitude() +
" Lng: " + loc.getLongitude(), Toast.LENGTH_LONG);
LatLng p = new LatLng(loc.getLatitude(), loc.getLongitude());
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> addresses = null;
String add = "";
try {
//String placeName = "YOU ARE HERE";
addresses = geoCoder.getFromLocation(loc.getLatitude(), loc.getLongitude(),1);
Address address = addresses.get(0);
if (addresses.size() > 0) {
for (int i = 0; i <= address.getMaxAddressLineIndex(); i++)
add += address.getAddressLine(i) + "\n";
// mMap2.addMarker(new MarkerOptions().position(p).title("You Are Here"));
}
} catch (IOException e) {
e.printStackTrace();
}
mMap2.addMarker(new MarkerOptions()
.position(p)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
.title("YOU ARE HERE ")
.snippet(KEY + "Population: 4,137,400"));
// mMap.addMarker(new MarkerOptions().position(p).title("YOU ARE HERE"));
mMap2.moveCamera(CameraUpdateFactory.newLatLngZoom(p, 12.0f));
}
}
。クリックセクションのesle声明に達するが、私はちょうどそのmehtodのうちのいくつかの方法を知っていて、あなたはこのようにタグを設定することができ