Android TextView con enlaces en los que se puede hacer clic: ¿cómo capturar clics?

Tengo un TextView que está mostrando HTML básico, que contiene más de 2 enlaces. Necesito capturar clics en los enlaces y abrirlos, en mi propia WebView interna (no en el navegador predeterminado).

El método más común para manejar la representación de enlaces parece ser así:

String str_links = "<a href='http://google.com'>Google</a><br /><a href='http://facebook.com'>Facebook</a>";
text_view.setLinksClickable(true);
text_view.setMovementMethod(LinkMovementMethod.getInstance());
text_view.setText( Html.fromHtml( str_links ) );

Sin embargo, esto hace que los enlaces se abran en el navegador web interno predeterminado (que muestra el cuadro de diálogo "Completar acción usando ...").

Intenté implementar un onClickListener, que se activa correctamente cuando se hace clic en el enlace, pero no sé cómo determinar qué enlace se hizo clic ...

text_view.setOnClickListener(new OnClickListener(){

    public void onClick(View v) {
        // what now...?
    }

});

Alternativamente, intenté crear una clase personalizada LinkMovementMethod e implementar onTouchEvent ...

public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) {
    String url = text.toString();
    // this doesn't work because the text is not necessarily a URL, or even a single link... 
    // eg, I don't know how to extract the clicked link from the greater paragraph of text
    return false;
}

Ideas?

Ejemplo de solución

se me ocurriouna solución que analiza los enlaces de una cadena HTML y hace que se puedan hacer clic, y luego le permite responder a la URL.

Respuestas a la pregunta(6)

Su respuesta a la pregunta