SpannableString可以被点击的文字

时间:2023-03-09 02:44:13
SpannableString可以被点击的文字
SpannableString可以被点击的文字

1 TextView tv= (TextView) findViewById(R.id.textview_z); String text="一段可以被点击点击的文字,文字可以变成图片"; SpannableString spannableString=new SpannableString(text); ImageSpan imagespan=new ImageSpan(MainActivity.this,R.mipmap.fu); //设置5-7之间的字符为图片 spannableString.setSpan(imagespan,5,7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置8-9之间的字符可以被点击 ClickableSpan click=new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(MainActivity.this,"文字被点击了",Toast.LENGTH_SHORT).show(); } }; spannableString.setSpan(click,8,9,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.setText(spannableString); //如果设置了文字的点击事件,就必须设置这个方法,文本的点击处理方法 tv.setMovementMethod(new LinkMovementMethod());

//edittext 也可以用spannableString
EditText edittext= (EditText) findViewById(R.id.edittext_z);
String htmlString = "<html>\n" +
" <head></head>\n" +
" <body>\n" +
" 哈哈哈\n" +
" <a href=\"http://m.oschina.net/u/993896\" class=\"referer\">@WoshiWo</a> 我点你了噢 \n" +
" </body>\n" +
"</html>";
//spanned 是 接口继承CharSequence ,把String 变成对象Html
final Spanned html = Html.fromHtml(htmlString);
SpannableString spannableString1=new SpannableString(html);
ImageSpan what1=new ImageSpan(MainActivity.this,R.mipmap.fu);
spannableString1.setSpan(what1,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
edittext.setText(spannableString1);
edittext.setMovementMethod(new LinkMovementMethod());
//spannableString.setSpan(what,5,7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
what参数可以设置下面的属性,来更改SpannableString的样式

SpannableString可以被点击的文字