使用Linkify创建链接后是否可以更改TextView文本?我有一些东西,我希望网址有两个字段,一个名称和ID,但我只是希望文本显示名称.
所以我开始使用带有包含name和id的文本的textview,并使用linkify创建两个字段的相应链接.但对于显示器,我不想显示id.
这可能吗?
我想添加一个textview的链接,并具有以下代码:
TextView textview = (TextView) findViewById(R.id.mytext);
Pattern myPattern = Pattern.compile("WordToBeLinked");
String link = "http://mydomain.com/something";
Linkify.addLinks(textview, myPattern, link);
Run Code Online (Sandbox Code Playgroud)
所以一切都按预期工作:单词"WordToBeLinked"链接,它打开浏览器的链接但不知何故Linkify将"WordToBeLinked"添加到URL,因此调用的URL如下所示:
http://mydomain.com/somethingWordToBeLinked
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我做错了什么吗?谢谢
我正在创建一个列表视图.在该列表中,每个项目都有文本视图.在文本视图中,我定义了基于Web服务数据的链接文本.
现在,当我点击链接文本时,我得到的错误就像
09-21 20:27:38.031: ERROR/AndroidRuntime(766): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=\"ticbeat.com/socialmedia/fa…" (has extras)
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题..解决方案的任何答案将高度赞赏.
更新:
码:
if(urlentities[position]!=null && dpurlentities[position]!=null)
holder.twtdata.setText(Html.fromHtml(timelines[position].replace(urlentities[position],"<a href=\\\""+dpurlentities[position]+"\">"+urlentities[position]+"</a>")));
Run Code Online (Sandbox Code Playgroud) 所以,我知道SO上有很多相关的问题,但它们都不是我想要的.我正在尝试实现一个PHP函数,它将文本URL从用户生成的帖子转换为链接.我正在使用来自Daring Fireball的"改进"正则表达式到页面底部:http://daringfireball.net/2010/07/improved_regex_for_matching_urls 该函数不返回任何内容,我不知道为什么.
<?php
if ( false === function_exists('linkify') ):
function linkify($str) {
$pattern = '(?xi)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))';
return preg_replace($pattern, "<a href=\"\\0\" rel=\"nofollow\" target=\"_blank\">\\0</a>", $str);
}
endif;
?>
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我让这个工作吗?谢谢!
我正在我的项目中,我有一个listView,每个项目都是一个LinaerLayout,它有一个带Linkify超链接的TextView.因此,当我按下列表视图中的某个项目时,它会打开一个对话框,这很好.当我按下listView中的链接文本时,它会打开一个对话框,这很好.问题:当我长按Listview中的链接文本时,它会同时打开一个对话框和给定链接的活动!在这种情况下,我只希望它只打开对话框.换句话说,我想在Long press上忽略Linkify的超链接.有谁知道我怎么做到这一点?我不知道在哪里申请LongPress attributs ...在此先感谢.
仅供参考,我尝试了以下但不起作用.
public class URLSpanNoUnderline extends URLSpan implements OnLongClickListener {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override
public void updateDrawState(TextPaint textPaint) {
super.updateDrawState(textPaint);
textPaint.setUnderlineText(false);
}
@Override
public void onClick(View v) {}
@Override
public boolean onLongClick(View v) {
Log.d("log", "lonnnnnnnnnnnnnnnng click");
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法链接ListView中包含的特定TextView?我尝试使用android:autoLink="all"但是没有用.我得到了一个脱离背景错误.
还需要注意:ListView是我在ViewFlipper中的第二个视图.
我也尝试过:
View mItemView = mAdapter.getView(2, null, null);
TextView infoText = (TextView) mItemView.findViewById(R.id.rowText2);
Linkify.addLinks(infoText, Linkify.ALL);
Run Code Online (Sandbox Code Playgroud)
在适配器绑定到ListView并切换视图之后.没运气.
这是堆栈跟踪:
06-03 21:19:25.180: ERROR/AndroidRuntime(1214): Uncaught handler: thread main exiting due to uncaught exception
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): 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-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.app.ApplicationContext.startActivity(ApplicationContext.java:550)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.text.style.URLSpan.onClick(URLSpan.java:62)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.widget.TextView.onTouchEvent(TextView.java:6560)
06-03 …Run Code Online (Sandbox Code Playgroud) 嗨,我已经浏览了所有可以找到的不同的linkify教程,但是这里没有一个是我当前的代码:
final SpannableString s = new SpannableString("Please send any questions to email@fake.com");
Linkify.addLinks(s, Linkify.EMAIL_ADDRESSES);
AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);
builder.setTitle("Warning!")
.setMessage(s)
.setCancelable(false)
.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("Decline", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Activity.this.finish();
}
}).show();
Run Code Online (Sandbox Code Playgroud)
但是,当我实际运行应用程序时,它会显示文本,如蓝色和带下划线,就好像它已链接但选择文本不会提示打开电子邮件应用程序.我也试过网址,浏览器不起作用是否有缺少的东西?
谢谢你的帮助.
我希望twitter提及红色,而主题标签是另一种颜色,如果任何推文包含任何网页链接..链接应该是可点击的并通过意图传递给另一个Activity(WebView).
我怎么能实现这个?
TransformFilter filter = new TransformFilter() {
public final String transformUrl(final Matcher match, String url) {
return match.group();
}
};
Pattern mentionPattern = Pattern.compile("@([A-Za-z0-9_-]+)");
String mentionScheme = "http://www.twitter.com/";
Linkify.addLinks(tvMessage, mentionPattern, mentionScheme, null, filter);
Pattern hashtagPattern = Pattern.compile("#([A-Za-z0-9_-]+)");
String hashtagScheme = "http://www.twitter.com/search/";
Linkify.addLinks(tvMessage, hashtagPattern, hashtagScheme, null, filter);
Pattern urlPattern = Patterns.WEB_URL;
Linkify.addLinks(tvMessage, urlPattern, null, null, filter);
// tvMessage.setLinkTextColor(Color.parseColor("#3467BB"));
Run Code Online (Sandbox Code Playgroud)

我有一个TextView在我ArrayAdapter可能包含一些超链接.对于我使用的那些链接Linkify:
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
rowView = inflater.inflate(R.layout.list_item_2, null);
holder = new ViewHolder();
holder.content = (TextView) rowView.findViewById(R.id.postContent);
holder.date = (TextView) rowView.findViewById(R.id.postDate);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
holder.content.setText(contents.get(position));
holder.date.setText(dates.get(position));
Linkify.addLinks(holder.content, Linkify.ALL);
return rowView;
}
Run Code Online (Sandbox Code Playgroud)
但是因为Linkify在ArrayAdapter中添加了,我得到一个例外说:
08-05 16:42:16.715: E/AndroidRuntime(20598): FATAL EXCEPTION: main
08-05 16:42:16.715: E/AndroidRuntime(20598): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the …Run Code Online (Sandbox Code Playgroud) 我想链接一个电子邮件地址并将静态主题放到电子邮件中.
在布局中我有这个:
<TextView
android:id="@+id/textView5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:autoLink="email"
android:text="@string/email" />
Run Code Online (Sandbox Code Playgroud)
如何将主题添加到电子邮件中?我应该Activity用这个addLinks()方法做到这一点,对吗?我尝试了一些组合,但电子邮件被附加到主题...
我检查了这些来源,但没有运气: