Tenho o texto " Android é uma pilha de software ". Neste texto, desejo definir o texto " empilhar " é clicável. no sentido, se você clicar nela, ela será redirecionada para uma nova atividade (não no navegador).
Eu tentei, mas não estou conseguindo.
android
string
textview
clickablespan
naresh
fonte
fonte
Respostas:
android.text.style.ClickableSpan
pode resolver seu problema.Em XML:
fonte
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.BLUE); ss.setSpan(fcs, 22, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ForegroundColorSpan
nosetSpan
depois de ter definido o tempo de clickable. Colocar o primeiro plano antes da extensão clicável, a nova cor não será refletida.Minha função para fazer vários links dentro
TextView
USANDO
XML
DEMO
Referência
Solução para limpar a seleção de destaque do link, siga https://stackoverflow.com/a/19445108/5381331
fonte
Você pode usar o ClickableSpan conforme descrito nesta postagem
Código de amostra:
Referência
fonte
startIndex
eendIndex
lógica.Você pode usar código de exemplo. Você deseja aprender detalhes sobre o ClickableSpan. Por favor, verifique esta documentação
fonte
Eu criei esse método auxiliar no caso de alguém precisar de posição inicial e final de uma String.
E aqui está como você o usa
fonte
fonte
Aqui está um
Kotlin
método para tornar partes de umTextView
clicável:Pode ser chamado várias vezes para criar vários links em um TextView:
fonte
Kotlin Versão da resposta de Phan Van Linh.
Observe que há algumas pequenas modificações.
fonte
Para negrito,
fonte
Eu sugeriria uma abordagem diferente que acho que requer menos código e é mais "amigável à localização".
Supondo que sua atividade de destino seja chamada "ActivityStack", defina no manifesto um filtro de intenção para ela com um esquema personalizado (por exemplo, "myappscheme") no AndroidManifest.xml:
Defina o TextView sem nenhuma tag especial (é importante NÃO usar a tag "android: autoLink", consulte: https://stackoverflow.com/a/20647011/1699702 ):
use um link com esquema personalizado e host no texto do TextView como (em String.xml):
e "ative" o link com setMovementMethod () (em onCreate () para atividades ou onCreateView () para fragmentos):
Isso abrirá a atividade da pilha com um toque na palavra "pilha".
fonte
Você pode usar este método para definir o valor clicável
Isto é como usá-lo:
fonte
Este é o meu
MovementMethod
para detectar cliques em links / textos / imagens. É modificadoLinkMovementMethod
.fonte
resposta mais genérica em kotlin
fonte
Para adicionar um texto vinculado a uma exibição de texto, você pode usar o exemplo de recurso de string "footer_text" abaixo e também editar seu método onCreate para sua atividade, você pode usar o exemplo abaixo
string.xml
MainActivity.java
fonte
As soluções fornecidas são bastante decentes. No entanto, geralmente uso uma solução mais simples.
Aqui está uma função do utilitário linkify
Usar esta função é bem simples. Aqui está um exemplo
fonte
Eu codifiquei um exemplo para resolver sua pergunta no Kotlin.
Este é o código:
Este é o XML
Isto é o que parece
insira a descrição da imagem aqui
fonte
É realmente útil para a parte clicável de alguma parte do texto.
O ponto é um caractere especial na expressão regular. Se você deseja expandir o ponto, precisa escapar do ponto como
\\
. em vez de apenas passar ".
" para o método de texto que pode ser medido. Como alternativa, você também pode usar a expressão regular[.]
para expandir a String por um ponto em Java.fonte