0

Я показываю пару маркеров на карте Google. При нажатии на маркер открывает пользовательский InfoWindowAdapterКак сделать ссылку, кликабельную в Google Map Маркер InfoWindowAdapter

this.map.setInfoWindowAdapter(new CustomInfoWindowAdapter(getLayoutInflater())); 

В этом CustomInfoWindowAdapter я отображать текст и создать ссылку, если номер телефона найден:

@Override 
public View getInfoContents(Marker marker) { 
    if (this.popup == null) { 
     this.popup = inflater.inflate(R.layout.poi_marker, null); 
    } 

    TextView tv = (TextView) popup.findViewById(R.id.title); 

    tv.setText(marker.getTitle()); 
    tv = (TextView) popup.findViewById(R.id.snippet); 
    tv.setText(marker.getSnippet()); 
    Linkify.addLinks(tv, Linkify.PHONE_NUMBERS); 

    return(popup); 
} 

Дисплей затем правильно. Я вижу, что номер телефона отображается как ссылка, но я не могу нажать на него ... Как я могу открыть его дозвонщик?

+0

попробуйте в соответствии с моим ответом и удалите 'Linkify' из' TextView' –

ответ

0

я, наконец, удалось это сделать так:

Да, но проблема в том, что телефон разборе;)

мне удалось это сделать, как этот

this.map.setOnInfoWindowClickListener (новый OnInfoWindowClickListener() {

 @Override 
     public void onInfoWindowClick(Marker marker) { 
      final String description = marker.getSnippet(); 
      if (!TextUtils.isEmpty(description)) { 
       final Spannable span = Spannable.Factory.getInstance().newSpannable(description); 
       if (Linkify.addLinks(span, Linkify.PHONE_NUMBERS)) { 
        final URLSpan[] old = span.getSpans(0, span.length(), URLSpan.class); 
        if (old != null && old.length > 0) { 
         Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(old[0].getURL())); 
         startActivity(intent); 
        } 
       } 
      } 
     } 
    }); 
Смежные вопросы