android TextView ClickableSpan 长按报错
用户注册的时候,一般都会有个协议连接,一般都会用到ClickableSpan,比如
.
.
TextView tvPt;
.
.
private void setPtLink() {
        String user_pt = "《用户协议》";
        SpannableString st = new SpannableString(user_pt);
        st.setSpan(new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                ds.setColor(Color.WHITE);       //设置文件颜色
                ds.setUnderlineText(true);      //设置下划线
            }
            @Override
            public void onClick(View view) {
                //用户协议跳转界面
                //CommonUtils.showToast(getBaseContext(), "用户协议");
            }
        }, 0, st.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        tvPt.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明,否则会一直出现高亮
        tvPt.append(st);
        tvPt.setMovementMethod(LinkMovementClickMethod.getInstance());//开始响应点击事件
    }以上代码确实可以让指定文字点击,可是长按却出发了TextView的长按事件。导致错误 
解决方案
重写performLongClick,就可以阻止报错。
public class TextViewNotLongClick extends TextView {
    public TextViewNotLongClick(Context context) {
        super(context);
    }
    public TextViewNotLongClick(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public TextViewNotLongClick(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    public boolean performLongClick() {
        return false;
    }
} 
                   
                   
                   
                   
                             本文介绍了一种在Android中使用ClickableSpan实现TextView内链接的方法,并针对长按时触发默认TextView长按事件的问题提供了解决方案:通过重写TextView的performLongClick方法来避免此冲突。
本文介绍了一种在Android中使用ClickableSpan实现TextView内链接的方法,并针对长按时触发默认TextView长按事件的问题提供了解决方案:通过重写TextView的performLongClick方法来避免此冲突。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   2578
					2578
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            