我正在尝试在文本字符串中制作可点击的链接,当单击时启动活动。我使用Linkify()来检测文本中的链接。此函数能够向文本添加链接,但只能添加Web URL。我需要将我的输出转换为ClickableSpan,以便我可以实现此技术。
如何使Linkify()的已标识链接成为可点击链接,并指向某个活动?
以下是我在Linkify中使用的代码:
// Linkify parameters
final static Pattern pattern = Pattern.compile("\\[[^]]*]"); // defines the fact that links are bound by [square brackets]
final String scheme = "http://"; // TODO: Currently this is just a blank link
Linkify.addLinks(linkText, pattern, scheme);
如何使Linkify()的已标识链接成为可点击链接,并指向某个活动?
调用addLinks()
后,调用getText()
以从TextView
中检索Spane
对象。此对象将有一系列URLSpan
对象,每个匹配的链接一个——您可以通过调用getSpans()
来获取这些对象的数组。您需要注意每个跨度的开始和结束位置(通过getSpans Start()
和getSpend()
),删除URLSpan
,并将其替换为您自己的跨度以执行您想要的操作。
对于您想要实现的目标,可能更简单的方法是覆盖active
中的start Active()
方法,并使用文本中的URL拦截ACTION_VIEW
意图。类似于这样:
public class MyActivity extends Activity {
@Override
public void startActivity(Intent intent) {
final String action = intent.getAction();
if (action.equals(Intent.ACTION_VIEW)) {
// launch our other activity instead
Intent ourIntent = new Intent(this, MyOtherActivity.class);
ourIntent.setData(intent.getData());
super.startActivity(ourIntent);
// we're done!
return;
}
// else, normal handling by the framework
super.startActivity(intent);
}
// the rest of your activity code
}
作为参考,这是URLSpan的源代码,它将触发上面的start Active()
方法。
问题内容: 我的密码 HTML: JS: CSS: 问题 我可以在chrome中单击,但不能在ff中单击。当我单击时,它单击整体。 题: 我的代码无效吗?如果我的代码有效,该问题的解决方案是什么。 我尝试过的 我尝试从控制台进行操作,并且它在ff中可以完美运行,所以我想问题是在内部无法单击。 而且也不起作用。 我试过放进去,但是也不行。 问题答案: 请参考规范,最引人注目的是禁止的内容(在SGML
作为一个真正的app,当前列表的每一个item布局应该做一些工作。第一件事就是创建一个合适的XML,能符合我们的需要就行。我们希望显示一个图标,日期,描述以及最高和最低温度。所以让我们创建一个名为item_forecast.xml的layout: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http
有没有办法将图像分割到区域(现在是JLabel,但如果需要我可以更改它)? 我在我的程序中使用swing,我有一个图像(这个例子是正方形),里面有一些三角形、星星和梯形(它可以是JPG、PNG等)。 这个想法是用户将点击这些形状中的一个,然后我将在用户点击的区域顶部放置另一个小图标。用户可以点击多个区域,但在一天结束时,我需要知道哪些形状被点击。
我在chromedriver上运行测试时出错,因为它在FirefoxDriver上运行良好: WebDriverException:未知错误:元素在点(1270,449)处不可单击。其他元素将接收点击:(会话信息:Chrome=44.0.2403.157)(驱动程序信息:ChromeDriver=2.17.340124 知道怎么了吗?我正在使用最新的ChromeDriver。
我有一个web应用程序,我正试图为其编写selenium测试,但我遇到了Chrome驱动程序的问题。有一个向导类型的界面,用户可以使用它来填写表单。有一个按钮可以添加一个带有几个设置的行。我已经用黑色概述了这一点。蓝色矩形显示按钮的可点击区域。这个矩形的中间没有重叠其他任何东西。 问题是有一个巨大的div包含整个屏幕和Chrome说这个div将获得点击。那么,我该怎么绕过这件事呢?这似乎不是正确的
问题内容: 这个问题是由于总的中间在试图忠实于什么实际用户一样。所以我在想这种方法: 首先,而不是查找元素,然后单击: 编写单击以下内容的通用函数: 然后,当发生此异常时,请尝试以其他方式单击。 您认为这种方法可行吗? 问题答案: 请仔细阅读此堆栈溢出答案以更好地理解。 更新 我们也可以尝试 也请尝试如下 尝试使用Y坐标单击 尝试使用X坐标单击 希望这对您有帮助