Ответ 1
Вы можете переопределить onClick (вид виджетов) следующим образом:
@Override
public void onClick(View widget) {
// do what must happen after click event.
widget.invalidate();
}
У меня мало проблем, мне нужно удалить или настроить эту оранжевую подсветку при нажатии на clickablespan. Это мой класс, расширяющий ClickableSpan
public class InternalClickableSpan extends ClickableSpan {
private String clicked;
@Override
public void updateDrawState(TextPaint ds) {
ds.setUnderlineText(false);
}
public InternalClickableSpan(String clickedString) {
clicked = clickedString;
}
@Override
public void onClick(View view) {
Selection.setSelection((Spannable) ((TextView)view).getText(), 0);
Toast toast = Toast.makeText(mContext, clicked, Toast.LENGTH_SHORT);
toast.show();
}
}
и вот как я использую его в текстовом представлении
Spannable spans = (Spannable) tv.getText();
spans.setSpan(new InternalClickableSpan(contacts[i]), text.indexOf(contacts[i]), text.indexOf(contacts[i])+contacts[i].length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Кто-нибудь знает, как настроить "onclick highlight" на spannable object?
edit: Спасибо Aleadam за ответ, я переопределяю updateDrawState (пожалуйста, взгляните на первый метод в моем классе InternalClickableSpan), но я не могу найти способ настроить этот higlight в любом случае. Кто-нибудь получил другие идеи? Благодаря
Вы можете переопределить onClick (вид виджетов) следующим образом:
@Override
public void onClick(View widget) {
// do what must happen after click event.
widget.invalidate();
}
Это позволит удалить любую подсветку.
tv.setHighlightColor(Color.TRANSPARENT);
просто используйте это.
view.setSelector(new ColorDrawable(Color.TRANSPARENT));
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:id="@+id/LinearLayout02"
android:layout_height="50px"
android:layout_width="fill_parent"
// Layout Click enable
android:clickable="true"
// Setting Highlight Option in background property
android:background="@android:drawable/list_selector_background" />
</LinearLayout>
</LinearLayout>