【问题标题】:Android: replacing text URL with clickable HTML linkAndroid:用可点击的 HTML 链接替换文本 URL
【发布时间】:2013-02-18 03:43:09
【问题描述】:

我需要完全执行此操作,但在 Android 上:

Java : replacing text URL with clickable HTML link

我已尝试过此解决方案中提供的示例(适用于 Java),但没有奏效。

这就像正则表达式不起作用。

有什么解决办法吗?

谢谢!


这是我的代码:

            final EditText postTextView = (EditText) findViewById(R.id.postText);
            Intent output = new Intent();
            String text = postTextView.getText().toString();

            text = text.replaceAll("(.*://[^<>[:space:]]+[[:alnum:]/])", "<a href=\"$1\">HereWasAnURL</a>");

System.out.println("* * * Converted = " + text.replaceAll("(.*://[^[:space:]]+[[:alnum:]/])", "HereWasAnURL"));

            output.putExtra(ZNMainActivity.RESULT_CODE_POST, text );
            setResult(RESULT_OK, output);
            finish();       

【问题讨论】:

  • 您为什么不能使用该链接中显示的代码?它是 Java,而 android 在 Java 上运行。如果您想发布您的作品,我们可以告诉您您遇到的问题。
  • 我试过了,但没用。我的原文被保留了。
  • 发布您的代码。你可能做错了什么,我很乐意看看。
  • 从您的链接中尝试正则表达式的第二个答案。那个似乎对我有用 "return escapedText.replaceAll("(\\A|\\s)((http|https|ftp|mailto):\\S+)(\\s|\\z)", " $1$2$4");"
  • 从这个例子中,我没有找到 HtmlUtils 类。

标签: android regex url


【解决方案1】:

在你的 EditText 中做这样的事情

EditText editText = (EditText) findViewById(R.id.edittext);
editText.setText(someContent);
Linkify.addLinks(editText, Linkify.ALL);
Log.d(TAG, "HTML: " + Html.toHtml(editText.getEditableText()));

详情请见http://developer.android.com/reference/android/text/util/Linkify.html

【讨论】:

  • 是的。我以前也试过这个。它可以轻松地将网址转换为链接,用于 Android 界面,但它不能执行我需要的操作。我需要描述的转换才能将其发送到服务器。当我使用 Linkify 然后使用 toString() 方法来包含要发送到服务器的数据时,它没有任何 HTML 链接语法。
猜你喜欢
  • 2010-12-26
  • 2015-04-12
  • 2014-02-22
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多