作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 textView 和类似的文本
“这是带有 KeyWord 和 Link 浏览的简单文本”
在上面的文字中我想制作..
点击链接可打开该网址和点击该关键字在我的应用程序中打开一个新 Activity
还有,Whole TextView 甚至还有一个点击事件。
请帮助我找到解决方案。谢谢你,MKJParekh
最佳答案
您可以做的是创建一个自定义 ClickableSpan
,如下所示,
class MyCustomSpannable extends ClickableSpan
{
String Url;
public MyCustomSpannable(String Url) {
this.Url = Url;
}
@Override
public void updateDrawState(TextPaint ds) {
// Customize your Text Look if required
ds.setColor(Color.YELLOW);
ds.setFakeBoldText(true);
ds.setStrikeThruText(true);
ds.setTypeface(Typeface.SERIF);
ds.setUnderlineText(true);
ds.setShadowLayer(10, 1, 1, Color.WHITE);
ds.setTextSize(15);
}
@Override
public void onClick(View widget) {
}
public String getUrl() {
return Url;
}
}
并使用它的 onClick()
打开一个 Activity 或 URL。我正在添加一个在 WebView
中加载 URL 的演示。
String text = "http://www.google.co.in/";
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text);
MyCustomSpannable customSpannable = new MyCustomSpannable(
"http://www.google.co.in/"){
@Override
public void onClick(View widget) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(customSpannable.getUrl()));
startActivity(intent);
}
};
stringBuilder.setSpan(customSpannable, 0, text.length(),
Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText( stringBuilder, BufferType.SPANNABLE );
textView.setMovementMethod(LinkMovementMethod.getInstance());
关于Android Linkify 文本 - 单一 TextView 中的可扩展文本 - 就像 Twitter 推文一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570239/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!