Я знаю, что это так легко (дох ...), но я ищу способ запустить метод, нажав или щелкнув строку текста TextView в приложении для Android.
Я продолжаю думать о слушателях кнопок и анонимных вызовах слушателей методов, но, похоже, это не относится к TextView.
Может ли кто-нибудь указать мне на фрагмент кода, чтобы показать, как нажатие или нажатие на фрагмент текста в TextView запускает метод?
TextView
- link.medium.com/TLq6s8ltc3Ответы:
Вы можете установить обработчик клика в xml с этим атрибутом:
Не забудьте атрибут clickable, без него обработчик нажатия не вызывается.
main.xml
MyActivity.java
источник
setOnClickListener
устанавливаетclickable
атрибут, но использованиеonClick
атрибута, очевидно, не делает.onClick
он устанавливаетclickable
атрибут в Android 5.0 Lollipop (API 21). Может быть, они посчитали ошибкой то, что это не происходило в старых версиях?Это может быть не совсем то, что вы ищете, но это то, что сработало для того, что я делаю. Все это после моего
onCreate
:источник
Хорошо, я ответил на свой вопрос (но так ли это лучше?)
Вот как запустить метод, когда вы щелкаете или нажимаете на какой-либо текст в TextView:
и мой main.xml:
источник
изнутри действия, которое вызывает макет и текстовое представление, этот прослушиватель щелчков работает:
текстовое представление объявлено так (мастер по умолчанию):
и в файле strings.xml
источник
Хотя вы можете решить проблему, установив для слушателя текстовое представление, рекомендуется этого не делать. Вы должны использовать плоскую кнопку, так как она является подклассом Button, и она предоставляет множество атрибутов, которых нет у TextView.
Чтобы использовать плоскую кнопку, добавьте
style="?android:attr/borderlessButtonStyle"
атрибут -источник
в textView
Вы также должны реализовать View.OnClickListener и в методе On Click можно использовать намерение
Я проверил это решение работает отлично.
источник
Чтобы щелкнуть фрагмент текста (а не весь
TextView
), вы можете использоватьHtml
илиLinkify
(оба создают ссылки, которые открывают URL-адреса, но не обратный вызов в приложении).Linkify
Используйте строковый ресурс, например:
Затем в текстовом виде:
Html
Использование
Html.fromHtml
:Тогда в вашем текстовом обзоре:
источник
Вы можете использовать TextWatcher для TextView, более гибкий, чем ClickLinstener (не лучше и не хуже, только больше, чем один способ).
источник