#android
#Android
Вопрос:
У меня есть TextView, для атрибута isSelectable которого установлено значение TRUE, но у меня также есть OnClickListener для него, потому что. Я хочу, чтобы, если человек удерживает текст, текст, который нужно выделить, и он может скопировать его, но если он просто нажмет на него, я хочу, чтобы открылся экран.
this.subtitle.setTextIsSelectable(true); this.subtitle.setOnClickListener(v -> openMyScreen());
Итак, что происходит, так это то, что выделение работает нормально, но если вы нажмете на него, первое событие где-то будет использовано, и только когда я нажимаю во второй раз, оно работает. Есть ли у кого-нибудь 1 какие-либо идеи, как я могу это исправить.
Комментарии:
1. используйте событие LongClickListener.
Ответ №1:
Итак, проблема в том, что когда вы нажимаете на него один раз, textview фокусируется. Это то, что потребляет ваше событие click. Единственное решение, которое я смог найти, — это использовать setOnFocusChangeListener
в textview, затем проверить, сфокусировался ли texview, и использовать это как событие щелчка.
textview.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// Handle click event
}
}
});
Пожалуйста, обратите внимание, что вам все равно придется использовать OnClickListener
также для обработки событий щелчка после фокусировки