URL 在 android 的列表视图中作为 link

URL as a link in listview in android

我是 android 的新手,我正在尝试为 android 项目做出贡献。有消息列表视图,当用户单击特定消息时,另一个视图将打开并显示详细信息,如下图所示(android 视图)。

所有这些信息都是从网络上获取并解析的。并且 link 在网络视图中不可点击,如下图(网络视图)所示,

在网络视图中未显示为 hyperlink。我认为这就是它在 android 应用程序中也没有显示为 link 的原因。

有人可以帮我解决这个问题吗?与此相关的代码可以在以下位置找到:source 相关文件是:

\scraper\MessagesScraper.java , 
\scraper\SingleMessageScraper.java , 
\ui\messages.java 
\ui\SingleMessage.java

任何帮助都会很棒。提前致谢。

在您的 XMl 中,无论您在哪里定义特定的 TextView,都将以下内容添加到该 TextView

 android:linksClickable="true"

如果您想隐藏 URL 并只显示 link 的一些文本,请参阅 How do I make links in a TextView clickable?

编辑:据我所知...

MessageScraper 正在使用 ThreeLineAdapter - https://github.com/pradeepb6/TuCanMobile/blob/master/src/com/dalthed/tucan/adapters/ThreeLinesAdapter.java 你可以在这里看到所有的 TextView,然后去 res 文件夹并相应地改变它们。

SingleMessageScraper 似乎只是使用标准的 ArrayAdapter 和 Androids Simple_list_Item_1 进行布局。 http://developer.android.com/reference/android/R.layout.html#simple_list_item_1 因此,如果您需要,如果使用已经创建的布局没有意义,则需要为此制作自己的 list_item 布局。

我认为 UI 类 不需要任何更改。

回复:评论 - 一条消息(显示在您的图片中)是 TextView 的列表视图。如果您想在每个单元格中添加更多内容,您还可以拥有自定义视图的列表视图,这就是 ThreeLineAdapter 正在处理的内容。

如果您在 ListView 的 getView 函数中使用 TextView, 您可以使用 Linkify 将 link 转换为 URL

TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("http://www.example.com");
Linkify.addLinks(textView, Linkify.WEB_URLS);

WebView.getSettings().setJavaScriptEnabled(true);