open - Hacer una vista de texto de hipervínculo en Android
open url textview android (6)
Quiero hacer un enlace para un texto textview como Google . ¿Hay alguna forma de hacer un enlace como este? (es decir) Al hacer clic en la palabra Google, debería abrir el enlace apropiado. Cualquier idea es bienvenida.
Esto también se puede hacer utilizando la propiedad predeterminada de Textview
android:autoLink="email"
Para la versión más reciente de SDK fromHtml
está en desuso Use la línea siguiente
String yourtext = "<a style=''text-decoration:underline'' href=''http://www.sample.com''> Sample Website </a>";
if (Build.VERSION.SDK_INT >= 24) {
textView.setText(Html.fromHtml(yourtext, Html.FROM_HTML_MODE_LEGACY));
} else {
textView.setText(Html.fromHtml(yourtext));
}
Prueba esto y avísame qué pasa ...
TextView textView =(TextView)findViewById(R.id.textView);
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
String text = "<a href=''http://www.google.com''> Google </a>";
textView.setText(Html.fromHtml(text));
Todo probado y funcionando al 100%
Solución: android:autoLink="web"
a continuación es un ejemplo completo
Diseño de muestra Xml
<TextView
android:id="@+id/txtLostpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:autoLink="email"
android:gravity="center"
android:padding="20px"
android:text="@string/lostpassword"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/txtLostpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:autoLink="web"
android:gravity="center"
android:padding="20px"
android:text="@string/defaultpassword"
android:textAppearance="?android:attr/textAppearanceSmall" />
Cadena en string.xml
<string name="lostpassword">If you lost your password please contact <a href="mailto:[email protected]?Subject=Lost%20Password" target="_top">[email protected]</a></string>
<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string>
use android:autoLink="web"
en el archivo XML de su TextView. Debe convertir automáticamente las URL que se pueden hacer clic (si se encuentran en el texto)
Nota: - Html.fromHtml está en desuso en Android N
Debes verificar y admitir Android N
y versiones superiores de Android
//Set clickable true
tagHeading.setClickable(true);
//Handlle click event
tagHeading.setMovementMethod(LinkMovementMethod.getInstance());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
tagHeading.setText(Html.fromHtml("<a href=''https://github.com/hiteshsahu''>https://github.com/hiteshsahu</a>", Html.FROM_HTML_MODE_LEGACY));
} else {
tagHeading.setText(Html.fromHtml("<a href=''https://github.com/hiteshsahu''>https://github.com/hiteshsahu</a>"));
}
Alternativamente
Usted no puede querer identificar mediante programación la marca autoLink en TextView.
android: autoLink = "web"
android: linksClickable = "true"
De esta forma, no necesita agregar etiquetas <a href=''somelink''>
.
Lo cual es una desventaja, si desea agregar un hyperlink
a un text
no puede hacerlo de esta manera. por ejemplo, no puedes hacer algo como esto: - [ hiteshsahu ] [1]
<TextView
android:id="@+id/tag_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tag_ll"
android:layout_gravity="left"
android:layout_margin="10dp"
android:autoLink="web"
android:linksClickable="true"
android:text="https://github.com/hiteshsahu"
android:textColor="@color/secondary_text" />
El resultado de ambos enfoques: -