首页 > 代码库 > 给TextView的部分字符串加超链接
给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的部分字符串加超链接