Mam tekst „ Android to stos oprogramowania ”. W tym tekście chcę ustawić „ stos ” tekst ”, który można kliknąć. w tym sensie, że kliknięcie spowoduje przekierowanie do nowej aktywności (nie w przeglądarce).
Próbowałem, ale nie rozumiem.
android
string
textview
clickablespan
naresh
źródło
źródło
Odpowiedzi:
android.text.style.ClickableSpan
może rozwiązać twój problem.W XML:
źródło
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.BLUE); ss.setSpan(fcs, 22, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ForegroundColorSpan
wsetSpan
po ustawieniu rozpiętość klikalny. Umieszczanie pierwszego planu przed przęsłem klikalnym, nowy kolor nie zostanie odzwierciedlony.Moja funkcja do tworzenia wielu łączy w środku
TextView
ZA POMOCĄ
XML
PRÓBNY
Odniesienie
Rozwiązanie, aby wyczyścić zaznaczenie linku, wykonaj https://stackoverflow.com/a/19445108/5381331
źródło
Możesz użyć ClickableSpan zgodnie z opisem w tym rozdziale poście
Przykładowy kod:
Odniesienie
źródło
startIndex
iendIndex
logika.Możesz użyć przykładowego kodu. Chcesz poznać szczegóły na temat ClickableSpan. Sprawdź ten dokument
źródło
Zrobiłem tę metodę pomocnika na wypadek, gdyby ktoś potrzebował pozycji początkowej i końcowej z ciągu znaków.
A oto jak go wykorzystujesz
źródło
źródło
Oto
Kotlin
metoda uczynienia częściTextView
klikalnymi:Można go wywołać wiele razy, aby utworzyć kilka łączy w TextView:
źródło
Wersja Kotlin Kotlana odpowiedzi Phana Van Linha.
Pamiętaj, że ma kilka drobnych modyfikacji.
źródło
Dla odważnych
źródło
Sugerowałbym inne podejście, które moim zdaniem wymaga mniej kodu i jest bardziej „przyjazne dla lokalizacji”.
Załóżmy, że twoja aktywność docelowa nazywa się „ActivityStack”, w manifeście zdefiniuj dla niej filtr zamiaru za pomocą niestandardowego schematu (np. „Myappscheme”) w AndroidManifest.xml:
Zdefiniuj TextView bez specjalnego znacznika (ważne jest, aby NIE używać znacznika „android: autoLink”, patrz: https://stackoverflow.com/a/20647011/1699702 ):
następnie użyj łącza z niestandardowym schematem i hostem w tekście TextView jako (w String.xml):
i „aktywuj” link za pomocą setMovementMethod () (w onCreate () dla działań lub onCreateView () dla fragmentów):
Spowoduje to otwarcie działania stosu poprzez dotknięcie słowa „stos”.
źródło
Możesz użyć tej metody, aby ustawić klikalną wartość
Oto jak z niego korzystać:
źródło
To jest mój
MovementMethod
do wykrywania kliknięć linków / tekstu / obrazu. Jest zmodyfikowanyLinkMovementMethod
.źródło
bardziej ogólna odpowiedź w Kotlinie
źródło
Aby dodać połączony tekst w widoku tekstu, możesz użyć poniższego przykładu zasobu „footer_text”, a także edytować metodę onCreate dla swojej aktywności, możesz użyć poniższego przykładu
string.xml
MainActivity.java
źródło
Dostarczone rozwiązania są całkiem przyzwoite. Jednak generalnie używam prostszego rozwiązania.
Oto funkcja użyteczności linkify
Korzystanie z tej funkcji jest dość proste. Oto przykład
źródło
Podałem przykład rozwiązania problemu w Kotlin.
To jest kod:
To jest XML
Tak to wygląda
wprowadź opis zdjęcia tutaj
źródło
Jest to naprawdę pomocne dla klikalnej części dla pewnej części tekstu.
Kropka jest znakiem specjalnym w wyrażeniu regularnym. Jeśli chcesz rozciągać kropkę, musisz uciec kropka jako
\\
. zamiast po prostu przekazywać.
metodę „ ” do tekstu. Alternatywnie możesz również użyć wyrażenia regularnego,[.]
aby rozciąć łańcuch na kropkę w Javie.źródło