1. 程式人生 > >textView autolink 和onclick 點選事件衝突

textView autolink 和onclick 點選事件衝突

http://blog.csdn.net/dadzyl/article/details/39315445

extView設定autolink後,點選會自動響應超連結的處理,想要點選除超連結的部分實現跳轉到其他activity,現實現自定義控制元件。

1.自定義AutoLinkTextView

  1. import android.content.Context;  
  2. import android.text.SpannableString;  
  3. import android.text.style.ClickableSpan;  
  4. import android.util.AttributeSet;  
  5. import
     android.view.MotionEvent;  
  6. import android.widget.TextView;  
  7. publicclass AutoLinkTextView extends TextView {  
  8.     public AutoLinkTextView(Context context, AttributeSet attrs, int defStyle) {  
  9.         super(context, attrs, defStyle);  
  10.     }  
  11.     public AutoLinkTextView(Context context, AttributeSet attrs) {  
  12.         super(context, attrs);  
  13.     }  
  14.     public AutoLinkTextView(Context context) {  
  15.         super(context);  
  16.     }  
  17.     @Override
  18.     publicboolean onTouchEvent(MotionEvent event) {  
  19.         super.onTouchEvent(event);  
  20.         SpannableString span = new SpannableString(getText());  
  21.         ClickableSpan[] links = span.getSpans(getSelectionStart(),  
  22.                 getSelectionEnd(), ClickableSpan.class);  
  23.         if (links.length != 0) {  
  24.             returntrue;  
  25.         }  
  26.         returnfalse;  
  27.     }  
  28. }  

2.layout

在引用AutoLinkTextView的根佈局中需新增屬性 android:descendantFocusability="blocksDescendants"