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