¿Cómo agregar un hipervínculo a TextView en Android?

Hola geeks, hoy vamos a hacer una aplicación donde veremos cómo podemos agregar un enlace a un TextView en Android, y usando este concepto agregaremos portales: hogar y práctica (de GeeksforGeeks) en nuestra aplicación. Para que el usuario pueda acceder directamente a estos portales desde nuestra aplicación.

¿Qué vamos a construir en este artículo? 

Usaremos el archivo strings.xml para hacer nuestra tarea y luego estableceremosMovementMethod() en nuestro archivo java para que cualquier enlace que proporcionemos podamos dirigirlo allí. Así es como se verá nuestra aplicación.

Entonces, ahora veamos la implementación paso a paso de la aplicación.

Implementación paso a paso

Paso 1: crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: trabajar en el archivo strings.xml

Abra valores > archivo strings.xml . Tenemos que hacer dos strings para agregar un hipervínculo, así que use el código que se proporciona a continuación.

XML

<resources>
    <string name="app_name">Hyperlink_textview</string>
      
    <!-- href tag is used to add link-->
    <!-- link for home text view-->
    <string name="hyperlink"><a href="https://www.geeksforgeeks.org/">geeksforgeeks.org</a></string>
    <!-- link for practice textview-->
    <string name="hyperlink2"><a href="https://practice.geeksforgeeks.org/">practice.geeksforgeeks.org</a></string>
  
</resources>

Paso 3: trabajar con el archivo activity_main.xml

En el archivo activity_main.xml , tenemos que nombrar los TextViews por una string que creamos en el archivo strings.xml. A continuación se muestra el código para ello.

XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Constraint layout is used to constrain all components easily-->
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#6C6B74"
    tools:context=".MainActivity">
  
    <TextView
        android:id="@+id/textView11"
        android:layout_width="381dp"
        android:layout_height="78dp"
        android:layout_marginTop="252dp"
        android:background="#1B0D0D"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />
  
    <!-- ImageView for the logo-->
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="135dp"
        android:layout_height="136dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.026"
        app:srcCompat="@drawable/gfg_round" />
  
    <!-- TextView for the tagline of geeksforgeeks -->
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="141dp"
        android:text="A Computer Science Portal for geeks"
        android:textColor="#000C01"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.576"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/imageView"
        app:layout_constraintVertical_bias="0.022" />
  
    <!-- textview as a container to other two text views-->
    <TextView
        android:id="@+id/textView4"
        android:layout_width="381dp"
        android:layout_height="78dp"
        android:layout_marginTop="76dp"
        android:background="#1B0D0D"
        app:layout_constraintBottom_toTopOf="@+id/textView11"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3"
        app:layout_constraintVertical_bias="0.235" />
  
    <!-- Home text view-->
    <TextView
        android:id="@+id/textView7"
        android:layout_width="96dp"
        android:layout_height="44dp"
        android:gravity="center"
        android:text="Home"
        android:textColor="#027507"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="@+id/textView4"
        app:layout_constraintEnd_toEndOf="@+id/textView4"
        app:layout_constraintHorizontal_bias="0.15"
        app:layout_constraintStart_toStartOf="@+id/textView4"
        app:layout_constraintTop_toTopOf="@+id/textView4"
        app:layout_constraintVertical_bias="0.47" />
  
    <!-- Hyperlink number 1 to the textview-->
    <TextView
        android:id="@+id/textView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hyperlink"
        app:layout_constraintBottom_toBottomOf="@+id/textView4"
        app:layout_constraintEnd_toEndOf="@+id/textView4"
        app:layout_constraintHorizontal_bias="0.709"
        app:layout_constraintStart_toEndOf="@+id/textView7"
        app:layout_constraintTop_toBottomOf="@+id/textView3"
        app:layout_constraintVertical_bias="0.788" />
  
    <!-- Hyperlink number 2 to the textview-->
    <TextView
        android:id="@+id/textView12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Practice"
        android:textColor="#027507"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="@+id/textView11"
        app:layout_constraintEnd_toEndOf="@+id/textView11"
        app:layout_constraintHorizontal_bias="0.133"
        app:layout_constraintStart_toStartOf="@+id/textView11"
        app:layout_constraintTop_toTopOf="@+id/textView11"
        app:layout_constraintVertical_bias="0.474" />
  
    <!-- Practice text view-->
    <TextView
        android:id="@+id/textView13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hyperlink2"
        app:layout_constraintBottom_toBottomOf="@+id/textView11"
        app:layout_constraintEnd_toEndOf="@+id/textView11"
        app:layout_constraintHorizontal_bias="0.812"
        app:layout_constraintStart_toEndOf="@+id/textView12"
        app:layout_constraintTop_toTopOf="@+id/textView11"
        app:layout_constraintVertical_bias="0.593" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Después de implementar el código anterior, nuestra interfaz de usuario se ve así.

Paso 4: trabajar con el archivo MainActivity.java

Usaremos setMovementMethod() para redirigir a los usuarios al enlace provisto. También usaremos el método setcolorlink() para cambiar el color del enlace según nuestra conveniencia. A continuación se muestra el código para ello.

Java

import android.graphics.Color;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Text view number 1 to add hyperlink
        TextView linkTextView = findViewById(R.id.textView8);
          
        // method to redirect to provided link
        linkTextView.setMovementMethod(LinkMovementMethod.getInstance());
          
        // method to change color of link
        linkTextView.setLinkTextColor(Color.YELLOW);
  
        // Text view number 2 to add hyperlink
        TextView linkTextView2 = findViewById(R.id.textView13);
          
        // method to redirect to provided link
        linkTextView2.setMovementMethod(LinkMovementMethod.getInstance());
          
        // method to change color of link
        linkTextView2.setLinkTextColor(Color.YELLOW);
    }
  
}

Felicitaciones, ha realizado con éxito una aplicación completa, es hora de ejecutarla y probarla. Puede utilizar este método para redirigir a los usuarios de su aplicación a su sitio web. Aquí está el resultado final de su aplicación.

Producción:

Publicación traducida automáticamente

Artículo escrito por jangirkaran17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *