2016-07-21 7 views
1

Ich habe 3 Marker für verschiedene Situationen. Ich möchte Klick-Listener auf alle 3 Marker setzen (nicht auf den Titel), um zu überprüfen, welcher Marker angezeigt wird. Ich implementierte OnMarkerClickListener und onMarkerClick, aber keine Markierung wird angeklickt. Gibt es etwas, das ich vermisse? Der Code ist ein langer, also überprüfen Sie einfach die Unterseite für die onMarkerClick Methode.Google map pointer onClick

public class DriverMapFragmentActivity extends FragmentActivity implements 
 
ConnectionCallbacks, OnConnectionFailedListener,ResultCallback<LocationSettingsResult>, OnMarkerClickListener{ 
 

 

 
\t 
 
\t 
 
\t private Marker userStoreMarker, storeMarker_, storeMarker_test; 
 
\t 
 
\t 
 
\t 
 
\t @Override 
 
\t protected void onCreate(Bundle savedInstanceState) { 
 
\t \t super.onCreate(savedInstanceState); 
 
\t \t setContentView(R.layout.driver_map_page); 
 

 
\t \t 
 
\t \t 
 

 
\t \t 
 
\t \t driver_arrived.setOnClickListener(new OnClickListener() { 
 
\t \t \t 
 
\t \t \t @Override 
 
\t \t \t public void onClick(View v) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t Intent intent1 = new Intent("com.nits.quick.cabapp_push"); 
 
\t \t \t \t intent1.putExtra("message", "cancel"); 
 
\t \t \t \t DriverMapFragmentActivity.this.sendBroadcast(intent1); 
 
\t \t \t \t driver_arrived.setVisibility(View.GONE); 
 
\t \t \t \t 
 
\t \t \t } 
 
\t \t }); 
 

 
\t \t 
 
\t \t 
 
\t \t 
 
\t 
 

 
\t } 
 

 

 

 

 
\t 
 
\t 
 
\t 
 

 

 
\t public void pssengerProfilePage(final HashMap<String, String> userdetailMap_) { 
 
\t \t try { 
 

 

 
\t \t \t if (userdetailMap_.get("from_user").equals("app")) { 
 
\t \t \t \t addressAdminTV.setVisibility(View.VISIBLE); 
 
\t \t \t \t addressAdminTV.setText(userdetailMap_.get("address")); \t 
 
\t \t \t }else{ 
 
\t \t \t \t addressAdminTV.setVisibility(View.VISIBLE); 
 
\t \t \t \t addressAdminTV.setText(userdetailMap_.get("address")); \t 
 
\t \t \t \t driver_arrived.setVisibility(View.VISIBLE); 
 
\t \t \t  //driverArrivedAlertMessage("You have arrived.",getString(R.string.app_name)); 
 
\t \t \t  
 
\t \t \t } 
 

 

 
\t \t \t passengerDetailDialog = new Dialog(this, R.style.PassDialogSlideAnim); 
 
\t \t \t // set title \t \t \t \t 
 
\t \t \t passengerDetailDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); \t \t \t \t  \t 
 
\t \t \t passengerDetailDialog.setContentView(R.layout.passenger_profile_alert_page); 
 
\t \t \t passengerDetailDialog.setCancelable(false); \t 
 
\t \t \t passengerDetailDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
 
\t \t \t passengerDetailDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
 

 
\t \t \t 
 
\t \t \t 
 
\t \t \t CircleImageView pProfileImage = (CircleImageView)passengerDetailDialog.findViewById(R.id.p_notify_user_photo_imageView1); 
 
\t \t \t TextView pNameVText = (TextView) passengerDetailDialog.findViewById(R.id.p_user_name_textView1); \t \t \t \t  \t 
 
\t \t \t TextView pAddressdVText = (TextView) passengerDetailDialog.findViewById(R.id.p_address__textView2); 
 
\t \t \t TextView pPhoneVText = (TextView) passengerDetailDialog.findViewById(R.id.p_phone_no_textView3); 
 
\t \t \t ImageView pCallMobileVText = (ImageView) passengerDetailDialog.findViewById(R.id.p_call_mobile_imageView3); 
 
\t \t \t ImageView pSendSmsVText = (ImageView) passengerDetailDialog.findViewById(R.id.p_send_sms_imageView3); 
 
\t \t \t LinearLayout pSendSmsViewLL= (LinearLayout) passengerDetailDialog.findViewById(R.id.p_send_sms_linearlayout); 
 
\t \t \t 
 
\t \t \t pCancelTripText = (ImageView) passengerDetailDialog.findViewById(R.id.p_cancel_trip_imageView3); 
 

 
\t \t \t if (userdetailMap_.get("from_user").equals("app")) { 
 
\t \t \t \t pCancelTripText.setVisibility(View.VISIBLE); 
 
\t \t \t }else{ 
 
\t \t \t \t pCancelTripText.setVisibility(View.INVISIBLE); 
 
\t \t \t \t pSendSmsViewLL.setVisibility(View.INVISIBLE); 
 
\t \t \t } 
 

 

 

 
\t \t \t pNameVText.setText(userdetailMap_.get("pname")); 
 
\t \t \t final String fullName = userdetailMap_.get("pname"); 
 
\t \t \t //pAddressdVText.setText(userdetailMap_.get("email")); 
 
\t \t \t pPhoneVText.setText(userdetailMap_.get("mobile")); 
 
\t \t \t //"tel:0377778888" 
 
\t \t \t final String phoneNumber = "tel:"+userdetailMap_.get("mobile"); 
 
\t \t \t final String userId = userdetailMap_.get("id"); 
 
\t \t \t Log.e("POSTsPageFragment adapter", "userdetailMap_:"+userdetailMap_); 
 
\t \t \t try { \t \t \t \t  \t \t 
 

 
\t \t \t \t String apiLink = userdetailMap_.get("image"); 
 
\t \t \t \t // Log.d("Profile", "apiLink:"+apiLink); 
 
\t \t \t \t //String encodedurl = ""; 
 
\t \t \t \t //encodedurl = apiLink.substring(0,apiLink.lastIndexOf('/'))+ "/"+ Uri.encode(apiLink.substring(
 
\t \t \t \t //apiLink.lastIndexOf('/') + 1)); 
 
\t \t \t \t // Log.e("POSTsPageFragment adapter", "userdetailMap_:"+userdetailMap_); 
 
\t \t \t \t if (apiLink != null && !apiLink.equals("")) { 
 
\t \t \t \t \t Picasso.with(this) // Context : con 
 
\t \t \t \t \t .load(apiLink) // load: This path may be a remote URL, \t 
 
\t \t \t \t \t .resize(100, 100) 
 
\t \t \t \t \t .placeholder(R.drawable.default_user) 
 
\t \t \t \t \t .error(R.drawable.default_user) 
 
\t \t \t \t \t .into(pProfileImage); // Into: ImageView into which the final image has to be passed 
 
\t \t \t \t }else{ 
 
\t \t \t \t \t pProfileImage.setImageResource(R.drawable.default_user); 
 
\t \t \t \t } 
 
\t \t \t } catch (Exception e) { 
 
\t \t \t \t // TODO: handle exception 
 
\t \t \t } 
 
\t \t \t pCallMobileVText.setOnClickListener(new OnClickListener() { 
 

 
\t \t \t \t @Override 
 
\t \t \t \t public void onClick(View v) { 
 
\t \t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t \t Intent callIntent = new Intent(Intent.ACTION_CALL); 
 
\t \t \t \t \t callIntent.setData(Uri.parse(phoneNumber)); 
 
\t \t \t \t \t startActivity(callIntent); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
\t \t \t pSendSmsVText.setOnClickListener(new OnClickListener() { 
 

 
\t \t \t \t @Override 
 
\t \t \t \t public void onClick(View v) { 
 
\t \t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t \t //Log.d("DiverMapPage", "driver userId:"+userId); 
 
\t \t \t \t \t Bundle bundle = new Bundle(); 
 

 
\t \t \t \t \t String name = userdetailMap.get("fname")+" "+userdetailMap.get("lname"); 
 
\t \t \t \t \t bundle.putSerializable("userId", userdetailMap.get("id")); 
 
\t \t \t \t \t bundle.putSerializable("userName", name); 
 
\t \t \t \t \t bundle.putSerializable("opponentName", fullName); 
 
\t \t \t \t \t bundle.putSerializable("callFrom", "driver"); 
 
\t \t \t \t \t bundle.putSerializable("opponentID", userId); 
 
\t \t \t \t \t // Open chat activity 
 
\t \t \t \t \t QuickCabChatActivity.start(DriverMapFragmentActivity.this, bundle); 
 
\t \t \t \t } 
 
\t \t \t }); 
 

 
\t \t \t //Log.d("Profile", "userdetailMap_:"+userdetailMap_); 
 

 
\t \t \t pCancelTripText.setOnClickListener(new OnClickListener() { 
 

 
\t \t \t \t @Override 
 
\t \t \t \t public void onClick(View v) { 
 
\t \t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t \t //Cancel trip 
 
\t \t \t \t \t String params = "action=cancelJobDriver&j_id="+userdetailMap_.get("jobid"); 
 
\t \t \t \t \t DriverCancelTripTask driverCancelTrio = new DriverCancelTripTask(); 
 
\t \t \t \t \t driverCancelTrio.execute(params); 
 
\t \t \t \t \t passengerDetailDialog.dismiss(); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
\t \t \t // titleVText.setText(title); 
 
\t \t \t // TextView tvText = (TextView) dialog.findViewById(R.id.mail_id_textView2); 
 
\t \t \t //tvText.setText(message); \t \t \t  \t 
 

 
\t \t \t ImageView closedialog = (ImageView) passengerDetailDialog.findViewById(R.id.profile_page_close_imageView1); 
 
\t \t \t closedialog.setOnClickListener(new OnClickListener(){   
 
\t \t \t \t public void onClick(View v) { 
 
\t \t \t \t \t // Do your stuff... \t \t \t \t \t  \t   \t 
 
\t \t \t \t \t passengerDetailDialog.dismiss(); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
\t \t \t passengerDetailDialog.show(); \t 
 
\t \t } catch (Exception e) { 
 
\t \t \t // TODO: handle exception 
 
\t \t \t e.printStackTrace(); 
 
\t \t } \t  
 
\t } 
 

 

 
\t 
 
\t 
 

 

 
\t  
 

 

 
\t 
 
\t 
 

 
\t @Override 
 
\t public boolean onMarkerClick(Marker marker) { 
 
\t \t if (marker.equals(userStoreMarker)){ 
 
      System.out.println("userStoreMarker"); 
 
     }else if(marker.equals(storeMarker_)){ 
 
     \t System.out.println("storeMarker_"); 
 
     }else if(marker.equals(storeMarker_test)){ 
 
     \t System.out.println("storeMarker_test"); 
 
     } 
 
\t \t 
 
\t \t return true; 
 
\t } 
 

 
\t 
 
\t 
 
}

Antwort

1

Sie müssen die Markierung klicken Zuhörer auf die Karte setzen tun:

mMap.setOnMarkerClickListener(this); // mMap is your GoogleMap instance