2012-05-04 9 views
14

Sto sottoclassi ClickableSpan per personalizzare lo stile di testo per i collegamenti nel mio TextView.TextView ClickableSpan styling per stato premuto

private static class LinkSpan extends ClickableSpan { 
    @Override 
    public void onClick(View widget) { 
     // code... 
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
     super.updateDrawState(ds); 
     ds.setUnderlineText(false); 
     ds.setTypeface(Typeface.create(ds.getTypeface(), Typeface.BOLD)); 
     ds.setColor(0xff336699); 
    } 
} 

Voglio cambiare lo stile quando è premuto, oppure un utente tocca il collegamento. (come a:hover in css) ma non riesco a trovare un modo per ottenere lo stato corrente in updateDrawState.

C'è un modo per gestire questo? Se non riesco a cambiare lo stile del testo, voglio essere in grado di cambiare almeno il colore dello sfondo.

EDIT come sottolineato da un commento, è possibile trovare la risposta a Change the text color of a single ClickableSpan when pressed without affecting other ClickableSpans in the same TextView

+1

Hai trovato la risposta? Come sei finito a fare questo? – Ravi

+1

Per chi può aiutare in futuro, dai un'occhiata a questo http://stackoverflow.com/a/20905824/1646326 –

risposta

9

Per cambiare il colore di sfondo che ho fatto

testTextView.setHighlightColor(Color.BLUE); 

sul TextView.

Ma avere la possibilità di cambiare il colore del testo sarebbe meglio per me.

+0

Questo non era quello che chiedevo, ma ho accettato questa risposta poiché è l'unica risposta. La vera soluzione è su http://stackoverflow.com/a/20905824/1646326 – dasony

+0

La prossima volta non essere timido per pubblicare il collegamento in una risposta reale e contrassegnarlo come corretto. Aiuterà gli altri rendendo la risposta più visibile. –

+0

Questo risolve il mio problema, grazie! :) –

Problemi correlati