首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLSpan in SpannableString

URLSpan in SpannableString
EN

Stack Overflow用户
提问于 2011-10-07 04:33:39
回答 4查看 12.2K关注 0票数 11

在使用SpannableStringhttp://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html时,我将遵循以下示例

我正在尝试创建一个字符串,该字符串的“R.string.text1”后面跟着R.string.text2,但R.string.text2 (有10个字符)的URL格式是:

代码语言:javascript
复制
SpannableString ss = new SpannableString(getString(R.string.text1));
ss.setSpan(new URLSpan(getString(R.string.text2)), 0, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

但我得到的是

  1. 我没有在
  2. 上看到字符串R.string.text2,只有前10个字符是URL格式的

我怎样才能解决我的问题?

EN

回答 4

Stack Overflow用户

发布于 2017-01-31 09:45:18

这是一个更一般的答案,只展示了一个URLSpan的基本工作示例。

代码语言:javascript
复制
// set up spanned string with url
SpannableString spannableString = new SpannableString("Click here for more.");
String url = "https://developer.android.com";
spannableString.setSpan(new URLSpan(url), 6, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

// set to textview
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance()); // enable clicking on url span 
票数 21
EN

Stack Overflow用户

发布于 2012-02-02 08:00:22

我可以纠正你吗?

代码语言:javascript
复制
SpannableString ss = new SpannableString(getText(R.string.text1)+" "+getText(R.string.text2));
ss.setSpan(new URLSpan(getString(R.string.text2)),
    getString(R.string.text1).length()+1,
    ss.length(),
    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

很晚了,但至少为其他人做了^^

你也可以这样做:

代码语言:javascript
复制
SpannableString ss1 = new SpannableString(getText(R.string.text1));
// do what you want with ss1
SpannableString ss2 = new SpannableString(getText(R.string.text2)); // the text visible
ss2.setSpan(new URLSpan(getString(R.string.text2)), // this is the link itself
    0,
    ss2.length(), // link on entire text
    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

CharSequence csSS = TextUtils.concat(ss1, ss2); // import android.text.TextUtils;
票数 2
EN

Stack Overflow用户

发布于 2011-10-07 06:33:19

试试这边..。

代码语言:javascript
复制
SpannableString ss = new SpannableString(getString(R.string.text1+""+R.string.text2));
ss.setSpan(new URLSpan(getString(R.string.text2)), 0, getString(R.string.text2).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7683076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档