2013-11-12 3 views
0

Как изменить цвет текста ссылки при нажатии (нажмите или нажмите эффект). Пожалуйста, смотрите мой код нижеChange android SpannableString текст текста при нажатии

Код:

SpannableString spanStr = new SpannableString(tag);  
spanStr.setSpan(new HashTagsClickableSpan(tag), 0, tag.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
spanStr.setSpan(new ForegroundColorSpan(Color.RED),0,tag.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

class HashTagsClickableSpan extends ClickableSpan{  
    String clicked; 
    public HashTagsClickableSpan(String string) { 
     super(); 
     clicked =string; 
    } 

    public void onClick(View tv) { 
    Toast.makeText(getActivity(), "Text = " + clicked,Toast.LENGTH_SHORT).show();  
    } 

    @Override 
    public void updateDrawState(TextPaint ds) { 
     ds.setUnderlineText(false); 
    } 
} 

ответ

0

ClickableSpan.onClick вызывается только после ACTION_UP, так что это, вероятно, слишком поздно для эффекта, который вы хотите. В общем случае вы можете позвонить View.invalidate(), чтобы выдать перерисовку (и другой звонок updateDrawState).

Чтобы получить приятный нажатый эффект, вам, вероятно, лучше зарегистрировать прослушиватель прикосновений с помощью View.setOnTouchListener, прослушивая события мыши напрямую, при необходимости изменив ваше пользовательское состояние пробела и разместив недействительным.

Смежные вопросы