2012-05-04 12 views
14

Podklasy klasy ClickableSpan dostosowuję styl tekstu dla linków w moim TextView.TextView ClickableSpan stylizacja dla stanu wciśniętego

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); 
    } 
} 

Chcę zmienić styl, gdy jest wciśnięty, lub użytkownik dotyka łącza. (jak a:hover w css), ale nie mogę znaleźć sposobu na uzyskanie aktualnego stanu w updateDrawState.

Czy istnieje sposób, aby sobie z tym poradzić? Jeśli nie mogę zmienić stylu tekstu, chcę co najmniej zmienić kolor tła.

EDIT jak wskazał przez komentarzu można znaleźć odpowiedź na Change the text color of a single ClickableSpan when pressed without affecting other ClickableSpans in the same TextView

+1

Czy znalazłeś odpowiedź? Jak to się stało? – Ravi

+1

Dla każdego, kto może to pomóc w przyszłości, spójrz na to http://stackoverflow.com/a/20905824/1646326 –

Odpowiedz

9

Aby zmienić kolor tła zrobiłem

testTextView.setHighlightColor(Color.BLUE); 

na TextView.

Ale szansa na zmianę koloru tekstu byłaby dla mnie lepsza.

+0

To nie było to, o co prosiłem, ale zaakceptowałem tę odpowiedź, ponieważ jest to jedyna odpowiedź. Prawdziwym rozwiązaniem jest http://stackoverflow.com/a/20905824/1646326 – dasony

+0

Następnym razem nie wstydź się opublikować linku w rzeczywistej odpowiedzi i zaznacz to jako poprawne. Pomoże innym, dzięki czemu odpowiedź stanie się bardziej widoczna. –

+0

To naprawić mój problem, dzięki! :) –