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" />

但是当我设置一个文本的urlhttp://www.test.com?p1=v1&p2=v2 TextView的自动链接无法识别域之后的查询参数。

我可以理解这种URL没有太大的意义,但有没有解决这个问题的方法?

iOS对这些参数的识别很好。

在回答我自己的问题时,最终对我有效的是检查字符串的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;
}

相关内容

  • 没有找到相关文章

最新更新