给TextView的部分字符串加超链接

Posted dp_luo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给TextView的部分字符串加超链接相关的知识,希望对你有一定的参考价值。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //1找到控件
   
tv = (TextView) findViewById(R.id.spantest);
    //2 组合好可以点击的字符串
   
String all = new String(getResources().getString(R.string.testall));
    String test1 = new String(getResources().getString(R.string.test1));
    String test2 = new String(getResources().getString(R.string.test2));
    String format = String.format(all,test1,test2);
    int index1 = format.indexOf(test1);
    int index2 = format.indexOf(test2);
    System.out.println("index1"+index1);
    System.out.println("index2"+index2);

    SpannableString ss = new SpannableString(format);
    ss.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            System.out.println("test 1 click");

        }
    },index1,index1+test1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //设置文字的前景色
   
ss.setSpan(new ForegroundColorSpan(Color.RED),index1,index1+test1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //设置下划线文字
   
ss.setSpan(new UnderlineSpan(), index1,index1+test1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    ss.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            System.out.println("test 2 click");

        }
    },index2,index2+test2.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //3 将字符串设置为文本
   
tv.setText(ss);
    //4让文本的超链接起作用
   
tv.setMovementMethod(LinkMovementMethod.getInstance());
}

 

以上是关于给TextView的部分字符串加超链接的主要内容,如果未能解决你的问题,请参考以下文章

求助android开发里,如何部分文字超链接

asp中图片用div固定边框后怎么给图片加超链接,怎么样给div加超链接。

java如何在文本中的关键字自动加超链接

怎么整个DIV加超链接

怎么能给最外层div的背景图片加超链接

如何给有超链接的文本加上下划线