给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());
}

 

转载于:https://www.cnblogs.com/dp-luo/p/6885129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值