TextView设置autolink后,点击会自动响应超链接的处理,想要点击除超链接的部分实现跳转到其他activity,现实现自定义控件。
1.自定义AutoLinkTextView
import android.content.Context;
import android.text.SpannableString;
import android.text.style.ClickableSpan;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.TextView;
public class AutoLinkTextView extends TextView {
public AutoLinkTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public AutoLinkTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AutoLinkTextView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
SpannableString span = new SpannableString(getText());
ClickableSpan[] links = span.getSpans(getSelectionStart(),
getSelectionEnd(), ClickableSpan.class);
if (links.length != 0) {
return true;
}
return false;
}
}
2.layout
在引用AutoLinkTextView的根布局中需添加属性 android:descendantFocusability="blocksDescendants"