android textview问题总结

一、selctor不启作用

设置方法 : android:background="@drawable/fen_selector"

如果只有这个的话,是不起作用的。还必须加上: android:clickable="true"

二、setSpan 文本显示

 效果如上,一个文本框内的文字多种显示效果

SpannableString text6 = new SpannableString("make a call");  
text6.setSpan(new URLSpan("tel:10086"), 7, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
text6.setSpan(new ForegroundColorSpan(color.purple), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
tv11.setText( text6 );  
tv11.setMovementMethod(LinkMovementMethod.getInstance()); 
//setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 


void android.text.SpannableString.setSpan(Object what, int start, int end, int flags)

what 

 

flag


自定义 characterstyle ClickableSpan

 默认的链接在点击时,只会跳转到响应的View,如点击URL时,打开浏览器,点击电话号码时,打开拨号界面。 如果我们要在点击某连接时,跳转到某个Activity呢。 


URLSpan继承自ClickableSpan,所以我们的出发点也是这个类,然后重写其中的onClick 

 

Java代码   收藏代码
  1. public class IntentSpan extends ClickableSpan implements ParcelableSpan {  
  2.     private Intent mIntent;  
  3.       
  4.     public IntentSpan(Intent toActivity) {  
  5.         mIntent = toActivity;  
  6.     }  
  7.       
  8.     @Override  
  9.     public void onClick(View sourceView) {  
  10.         Context context = sourceView.getContext();  
  11.         context.startActivity( mIntent );  
  12.     }  
  13.       
  14.     @Override  
  15.     public int getSpanTypeId() {  
  16.         return 100;  
  17.     }  
  18.       
  19.     @Override  
  20.     public int describeContents() {  
  21.         return 0;  
  22.     }  
  23.       
  24.     @Override  
  25.     public void writeToParcel(Parcel dest, int flag) {  
  26.         // don't write to parcel  
  27.     }  
  28.       
  29.     public Intent getIntent() {  
  30.         return mIntent;  
  31.     }  
  32. }  
  33.    

 使用的话和URLSpan差不多 

 

Java代码   收藏代码
  1. SpannableString text6 = new SpannableString("make a call");  
  2. Intent intent = new Intent(context, SomActivity.class);  
  3. text6.setSpan(new IntentSpan(intent), 711, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  4. view6.setText( text6 );  
  5. view6.setMovementMethod(LinkMovementMethod.getInstance());  

引用自: http://mycoding.iteye.com/blog/1436660


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值