¿Cómo usar putExtra() y getExtra() para datos de string en Android?

Muchas veces en las aplicaciones de Android tenemos que pasar datos de una actividad a otra para realizar algunas operaciones. Hay varias formas diferentes que se utilizan para dar datos de una actividad a otra actividad. En este artículo, veremos específicamente cómo usar putExtra() y getExtra() para pasar y recuperar datos de strings en la aplicación de Android. 

Nota : este artículo de Android cubre los lenguajes Java y Kotlin

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Cómo crear/iniciar un nuevo proyecto en Android Studio

Paso 2: trabajar con el archivo activity_main.xml

Vaya a aplicación > res > diseño > actividad_principal.xml y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle. 

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/idRLContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--on below line we are creating
        a text for our app-->
    <TextView
        android:id="@+id/idTVHeading"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/idEdtMsg"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:padding="10dp"
        android:text="Using putExtras() and getExtras() in Android"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="20sp"
        android:textStyle="bold" />
  
    <EditText
        android:id="@+id/idEdtMsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/idBtnPassData"
        android:layout_margin="20dp"
        android:hint="Enter your message" />
  
    <!--on below line we are creating a button-->
    <Button
        android:id="@+id/idBtnPassData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:text="Pass Data"
        android:textAllCaps="false" />
  
</RelativeLayout>

Paso 3: Creando una nueva actividad

Vaya a aplicación>java>nombre del paquete de su aplicación>clic derecho>Nuevo>Actividad vacía y asígnele el nombre MainActivity2 y haga clic en finalizar para crear una nueva actividad. 

Paso 4: trabajar con el archivo MainActivity 

Vaya a aplicación > java > nombre del paquete de su aplicación > archivo MainActivity y agregue el código a continuación. Se agregan comentarios en el código para conocer en detalle. 

Kotlin

package com.gtappdevelopers.kotlingfgproject
  
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // on below line we are creating a variable.
    lateinit var msgEdt: EditText
    lateinit var passDataBtn: Button
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // on below line we are initializing our variables.
        passDataBtn = findViewById(R.id.idBtnPassData)
        msgEdt = findViewById(R.id.idEdtMsg)
  
        // on below line we are adding 
        // click listener for our button
        passDataBtn.setOnClickListener {
            // on below line we are getting 
            // data from edit text
            val msg = msgEdt.text.toString()
  
            // on below line we are creating a new 
            // intent to open a new activity.
            val i = Intent(this@MainActivity, MainActivity2::class.java)
  
            // on below line we are passing 
            // data to our new activity.
            i.putExtra("message", msg)
  
            // on below line we are
            // starting a new activity.
            startActivity(i)
        }
    }
}

Java

package com.gtappdevelopers.kotlingfgproject;
  
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    // on below line we are creating a variable.
    private Button passDataBtn;
    private EditText msgEdt;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // on below line we are initializing variables with ids.
        passDataBtn = findViewById(R.id.idBtnPassData);
        msgEdt = findViewById(R.id.idEdtMsg);
  
        // on below line we are adding click listener for our button
        passDataBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // on below line we are getting data from edit text
                String msg = msgEdt.getText().toString();
                
                // on the below line we are creating a new
                // intent to open a new activity.
                Intent i = new Intent(MainActivity.this, MainActivity2.class);
                
                // on below line we are passing 
                // data to our new activity.
                i.putExtra("message", msg);
  
                // on below line we are 
                // starting a new activity.
                startActivity(i);
            }
        });
    }
}

Paso 5: Trabajar con el archivo activity_main2.xml

Vaya a app>res>layout>activity_main2.xml y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle. 

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">
  
    <!--on below line we are creating
        a text for our app-->
    <TextView
        android:id="@+id/idTVMsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:padding="10dp"
        android:text="Message"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="20sp"
        android:textStyle="bold" />
  
</RelativeLayout>

 Paso 6: trabajar con el archivo MainActivity2 

Vaya a aplicación > java > nombre del paquete de su aplicación > archivo MainActivity2 y agregue el código a continuación. Se agregan comentarios en el código para conocer en detalle. 

Kotlin

package com.gtappdevelopers.kotlingfgproject
  
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity2 : AppCompatActivity() {
  
    // on the below line we are creating a variable.
    lateinit var msgTV: TextView
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
         
        // on below line we are initializing our variable.
        msgTV = findViewById(R.id.idTVMsg)
  
        // on below line we are setting our message to our text view.
        msgTV.text = intent.extras?.getString("message") ?: "No message found"
  
    }
}

Java

package com.gtappdevelopers.kotlingfgproject;
  
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity2 extends AppCompatActivity {
  
    // on the below line we are creating a variable.
    private TextView msgTV;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // on below line we are initializing variables with ids.
        msgTV = findViewById(R.id.idTVMsg);
         
        // on below line we are setting our message to our text view.
        msgTV.setText(getIntent().getStringExtra("message"));
    }
}

Ahora ejecute su aplicación para ver el resultado. 

Producción:

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje 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 *