I seem to be having trouble with the linkify I am using in my Custom Adapter. For some reason I recieve the following stack track when I click on one of the links:
06-07 20:49:34.696: ERROR/AndroidRuntime(813): Uncaught handler: thread main exiting due to uncaught exception
06-07 20:49:34.745: ERROR/AndroidRuntime(813): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
06-07 20:49:34.745: ERROR/AndroidRuntime(813): at android.app.ApplicationContext.startActivity(ApplicationContext.java:550)
06-07 20:49:34.745: ERROR/AndroidRuntime(813): at android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
06-07 20:49:34.745: ERROR/AndroidRuntime(813): …Run Code Online (Sandbox Code Playgroud) 我有两个问题
1)有谁知道,如何应用样式或格式来警告对话框.我目前使用Builder builder = new AlertDialog.Builder(this);And use setMessage()方法设置内容.
2)另外我想知道如何更改linkify创建的链接的颜色.我不想要默认的蓝色.
我有一个列表项视图,我添加了这个属性
android:autoLink="web|email|phone"
android:linksClickable="true"
autoUrlDetect="true"
Run Code Online (Sandbox Code Playgroud)
但问题是当检测到链接时,未显示上下文菜单.
如何在我的项目中有链接,但仍然是上下文菜单,以便在长按项目时继续显示.
在我的列表项中,我在其中只有一个布局和textview
编辑
如果我将这个android:linksClickable设置 为false就像这样
android:linksClickable="false"
Run Code Online (Sandbox Code Playgroud)
然后显示上下文菜单,但我无法点击链接:(
我想能够点击链接,但是当我长按项目我的菜单显示时
ListView滚动时为什么链接会丢失?从调试很明显,跨越不添加第二个时间上的TextView距离convertView.
这是从适配器调用的一段代码getView.
...
String body = MyItemDetails.getBody(); // String to linkify
final Spannable spannable = MyCustomUri.addHashtagSpans(context, body);
viewHolder.textView.setText(spannable);
viewHolder.textView.setTextIsSelectable(true); // adds additional spans
viewHolder.textView.setMovementMethod(ArrowKeyMovementMethod.getInstance());
viewHolder.textView.setAutoLinkMask(Linkify.WEB_URLS);
...
Run Code Online (Sandbox Code Playgroud)
MyCustomUri.addHashtagSpans()使用extends 创建一个SpannableStringwith .MyCustomSpanURLSpan
问题是当我在ListView链接中向上和向下滚动时丢失了.而当屏幕第一次打开时,它设置正确.
现在我通过禁用重convertView用来做出一个肮脏的修复:(任何想法如何更好地解决这个问题?
SDK 20+的手机认为任何两个带有点之间的单词都是链接.如何制作自己的Link探测器?
android:autoLink="web"认为abra.kadabra是一个网址.
setAutoLinkMask(Linkify.WEB_URLS);认为abra.kadabra是一个网址.
SDK <20的电话正确链接所有内容,错误仅在SDK为20+时发生.
我尝试过的例子:
代码发生在我的自定义TextView中
SpannableString ss = new SpannableString(this.getText().toString());
//LinkManager is a copy of Linkify but with another pattern.
LinkManager.addLinks(ss, LinkManager.WEB_URLS);
setText(ss);
setMovementMethod(LinkMovementMethod.getInstance());
setWebLinksTouchFeedback();
Run Code Online (Sandbox Code Playgroud)
这没有任何联系.即使我使用Linkify而不是LinkManager
我已经尝试了许多其他解决方案,所有这些解决方案最终都无法连接任何内容 有解决方案吗?
我有喜欢的Instagram的照片列表,使用具有指向井号标签和用户使用文字#和@和我使用Linkify,使这项工作.
我列表中的第一项获得的链接正确8/10次,但另一次只是纯文本.其他项目总是正确的链接.
BaseAdapter
// holder is a ViewHolder class holding my row views
// holder.photo is a ParseFile subclass object
// holder.photo.hashtags is an arraylist with objects
// holder.photo.comment() is a getString("key") from ParseObject
// hashtags is a String with hashtags, for example "#hashtag #anotherhashtag"
holder.hashtag.setText(hashtags, TextView.BufferType.SPANNABLE);
holder.title.setText(holder.photo.comment(), TextView.BufferType.SPANNABLE);
StringUtils.linkify(activity, holder.photo.hashtags, new TextView[]{ holder.hashtag, holder.title });
Run Code Online (Sandbox Code Playgroud)
StringUtils的
public static void linkify(Activity activity, List<Hashtag> hashtags, TextView[] textViews ) {
for (TextView t : textViews) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Linkify 与自定义模式一起使用,该模式应该匹配 10 位或 11 位长的电话号码。我写了以下代码 -
Pattern japPhoneNoPattern = Pattern.compile("[0-9]{10,11}");
Linkify.addLinks(viewHolder.right_message, japPhoneNoPattern, "");
Run Code Online (Sandbox Code Playgroud)
但它不会将文本转换为链接。知道我可能做错了什么吗?
以防万一,我在 ListView 中使用了 linkify。
我的android应用程序中有一个textview.
textView.setText(message);
Linkify.addLinks(textView, Linkify.ALL);
Run Code Online (Sandbox Code Playgroud)
使用此代码,它可识别电话号码,电子邮件地址,网络链接等,并突出显示它以进行点击,以便进行适当的意向呼
我想在一个数组示例中获取textview中存储的任何链接
如果我的textview包含"Hello, this is deer, my phone number is 9988776655 and email id is abc@gmail.com and weburl is www.abc.com"字符串
然后我想获取"9988776655","abc @ gmail.com","www.abc.com"并将其存储在数组中,是否可能......!?!
因此,我尝试添加功能,当您单击电话号码时,它将带您到具有预先填充的号码的拨号器应用程序.我有以下代码:
mContactDetailsText.setText(phonetextBuilder.toString());
Pattern pattern = Pattern.compile("[0-9]+\\s+[0-9]+");
Linkify.addLinks(mContactDetailsText, pattern, "tel:");
Run Code Online (Sandbox Code Playgroud)
和文本目前是"T. 0123 4567890"
目前的结果是只有上面的字符串,而不是可点击的.我甚至尝试添加以下行,但没有运气:
mContactDetailsText.setAutoLinkMask(0);
Run Code Online (Sandbox Code Playgroud)
任何人有任何想法或可以看到我做错了什么?
谢谢
我想让文本视图内的网络链接可点击。我用了这个代码
tv.setLinksClickable(true);
tv.setAutoLinkMask(Linkify.WEB_URLS);
Linkify.addLinks(tv, Linkify.WEB_URLS);
Run Code Online (Sandbox Code Playgroud)
它确实链接了网站 URL,但似乎也随机链接其他文本,如 z.xyz dzo.yzw 等。
我如何告诉 linkify 仅链接 URL?为了尝试检测以 http:// 或 https:// 开头的链接,我尝试了这种模式编译
tv.setLinksClickable(true);
Pattern httpPattern = Pattern.compile("^(http|https)://");
Linkify.addLinks(tv, httpPattern,"");
Run Code Online (Sandbox Code Playgroud)
但这不起作用(没有突出显示链接)。该正则表达式正确吗?addLinks 的第三个参数应该是什么?
感谢您提供任何使其正常工作的提示。