ClickableSpan not clickable in custom view (not TextView)
<p>In our app we want to improve scroll speed via drawing custom views with text. Problem is ClickableSpan not clicked. For TextView we can use </p>

<p><code>textView.setMovementMethod(LinkMovementMethod.getInstance());</code></p>

<p>But what can I do to make link clicking work in custom view?</p>

<pre><code>public class AutoLinkTextView extends View {
    private static final String TAG = "AutoLinkTextView";
    private StaticLayout staticLayout;

    public AutoLinkTextView(Context context) {
        super(context);
        initializeViews();
    }

    public AutoLinkTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initializeViews();
    }

    public AutoLinkTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initializeViews();
    }

    private void initializeViews() {
        TextPaint textPaint = new TextPaint();
        textPaint.setTextSize(55);
        textPaint.setAntiAlias(true);
        textPaint.setColor(Color.GRAY);
        textPaint.linkColor = Color.RED;

        Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");


        URLSpan urlSpan = new URLSpan( "http://google.com" )
        {
            @Override
            public void onClick( View widget )
            {
                Intent i = new Intent( Intent.ACTION_VIEW );
                i.setData( Uri.parse( getURL() ) );
                getContext().startActivity( i );
            }
        };
        wordtoSpan.setSpan(urlSpan, 19, 26, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        staticLayout = new StaticLayout(wordtoSpan, textPaint, 1300, Layout.Alignment.ALIGN_CENTER, 1, 1, true);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        staticLayout.draw(canvas);
        TextView textView = new TextView();
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), staticLayout.getHeight());
    }

}
</code></pre>