Android: android:autoLink= "web" не поддерживает параметры запроса после доменов

У меня есть TextView с автоссылкой, установленной как

<TextView
   android:id="@+id/messageDetail_privateText_txt"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:autoLink="web|phone|email" />

Но когда я устанавливаю текст с URL-адресом, например http://www.test.com/?p1=v1&p2=v2 автолинк TextView не распознает параметры запроса после домена.

Я могу понять, что такого рода URL не имеют особого смысла, но есть ли способ обойти эту проблему?

iOS распознает параметры просто отлично.

1 ответ

Отвечая на мой собственный вопрос, в конечном итоге мне удалось проверить URL-адреса строки и добавить косую черту вручную. Не самое крутое решение в мире, но сработало в этом случае.

Ниже код:

protected String normalizeURLs(String html)
{

    String[] pieces = html.split(" ");
    ArrayList<String> textParts = new ArrayList<>();

    for(String piece : pieces) {

        try {
            URL isURL = new URL(piece);
            String protocol = isURL.getProtocol();
            String host = isURL.getHost();
            String query = isURL.getQuery();
            String path = isURL.getPath();
            String questionMark = "?";

            if (path.equals("")) {
                path = "/";
            }

            if (query == null) {
                query = "";
                questionMark = "";
            }

            String url = protocol + "://" + host + path + questionMark + query;
            textParts.add(url);
        } catch (MalformedURLException exception) {
            textParts.add(piece);
        }
    }

    String resultString = "";

    for (String s : textParts)
    {
        resultString += s + " ";
    }

    return resultString;
}
Другие вопросы по тегам