Как работает автолинк: карта работает - PullRequest
5 голосов
/ 07 января 2012

Я использую antroid: autoLink = "map" атрибут TextView , чтобы перейти к карте и найти адрес, связанный с этим textview.

Но он ведет себя странно и находит только некоторые адреса . Вот код, который я пытаюсь:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView
        android:id="@+id/textViewautoLink"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/autolinktext"
        android:autoLink="map"></TextView>
</LinearLayout>

Вот мой strings.xml

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="autolinktext">1600 Amphitheatre Parkway, Mountain View, CA 94043 </string>
</resources>

Проблема:

Предположим, я пишу приведенную выше строку, т.е. 1600 Амфитеатр Паркуэй, Маунтин-Вью, Калифорния 94043 затем он работает нормально, и textView становится синего цвета, и когда я нажимаю на него, он ищет адрес на карте.

Когда я меняю этот адрес на: 1600 Amphitheatre Parkway, Mumbai, IN затем он также показывает то же самое и пытается найти адрес, но так как адрес неправильный, он не может его найти. Это нормально.

Но когда я пишу другой адрес, например: 600 Band Stand, Mumbai, IN Тогда

1) текстовое представление не синего цвета

2) Кажется, он не реагирует на клики

3) и так как он не кликабелен, он не находит адрес.

Я ищу в Google, но не вижу причин для такого поведения. Также я хочу знать, что

Существует ли какой-либо формат для записи этого адреса карты?

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

Пожалуйста, помогите.

1 Ответ

9 голосов
/ 07 января 2012

Ниже приведен комментарий, выбранный из соответствия

  1. ищите 1 - 5-значный номер для улицы (без поддержки 'One Microsoft Way')
  2. игнорировать, если ему предшествует '#', Suite, Ste, Rm
  3. искать два или более слов (до 5? North Frank Lloyd Wright Blvd)
    примечание: «Круг на улице Северных холмов» имеет шесть слов и более низкий «at» - разрешить at, by, of, in, и, ...?
  4. если слово начинается со строчной буквы, совпадение отсутствует
    разрешать: , . - # / (для 1/2) '"
  5. искать один или два разделителя для представления возможной 2-й строки адреса и названия города
    ищите полное имя штата или две буквы и / или почтовый индекс (5 или 9 цифр)
  6. теперь ищите суффикс улицы, в полной или сокращенной форме, с необязательным 's', если есть звездочка

Источник: CacheBuilder.cpp. Для получения дополнительной информации вы можете проверить точный алгоритм в CacheBuilder :: FindPartialAddress webviewcore

Насколько я вижу только из кода названия улиц, оканчивающиеся на LleY, NneX, RCade, VEnue, LAMEDA, aYoU и так далее ... совпадают. В вашем случае Стенд группы не соответствует окончанию названия улицы, которое обычно встречается в США

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...