Como pasar datos de un activity a otro activity

Hola amig@s hay veces que necesitamos pasar datos de un activity a otro segundo activity, entonces la pregunta aquí:

  Como pasar datos de un activity a otro activity

Para este ejemplo usaremos en el primer Activity dos editText donde el primer campo hara referencia al nombre, el segundo a la edad y esos dos campos pasaran al segundo Activity siendo mostrado en dos textView.

                    

Debemos crear nuestra aplicación y por defecto nos dará nuestra Activity llamado MainActivity pero necesitamos crear un segundo Activity al que llamaremos SegundoActivity, este lo crearemos haciendo anticlic(clic derecho) en la carpeta java luego en New como se muestra en la imagen siguiente:

Y deberia de quedarnos nuestros dos Activity de la siguiente forma:

Ahora nos vamos a nuestro activity_main y debemos tener en el modo gráfico lo siguiente:
Dos EditText y un Button.

Les dejo el modo Texto:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
tools:context="com.androfast.pc.apppasaractivtyotro.MainActivity">

<EditText
android:id="@+id/etxtNombre"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Nombre"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.185" />

<EditText
android:id="@+id/eTxtEdad"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Edad"
app:layout_constraintBottom_toTopOf="@+id/btnEnviar"
app:layout_constraintTop_toBottomOf="@+id/etxtNombre"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />

<Button
android:id="@+id/btnEnviar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMessage"
android:text="Enviar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/eTxtEdad" />
</android.support.constraint.ConstraintLayout>

Ahora nos vamos a nuestro activity_segundo y debemos tener en el modo gráfico lo siguiente:
Dos TextView.

Les dejo el modo Texto:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
tools:context="com.androfast.pc.apppasaractivtyotro.SegundoActivity">

<TextView
android:id="@+id/txtNombre"
android:layout_width="311dp"
android:layout_height="39dp"
android:text="TextView"
android:textSize="36sp"
app:layout_constraintBottom_toTopOf="@+id/txtEdad"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="26dp" />

<TextView
android:id="@+id/txtEdad"
android:layout_width="320dp"
android:layout_height="46dp"
android:text="TextView"
android:textSize="36sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtNombre"
tools:layout_editor_absoluteY="324dp"
tools:layout_editor_absoluteX="38dp"
app:layout_constraintHorizontal_bias="0.509" />
</android.support.constraint.ConstraintLayout>

Ya hemos terminado las partes gráficas es hora de hacer funcionar el código:
Nos vamos a nuestro MainActivity.java y escribimos lo siguiente:

public class MainActivity extends AppCompatActivity {
public static final String ENVIAR_NOMBRE ="nombre";
public static final String ENVIAR_EDAD = "edad";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user taps the Send button */
public void enviarMensaje(View view) {
Intent intent = new Intent(this, SegundoActivity.class);
EditText nombre = (EditText) findViewById(R.id.etxtNombre);
EditText edad = (EditText) findViewById(R.id.eTxtEdad);
String mensaje1 = nombre.getText().toString();
String mensaje2 = edad.getText().toString();
intent.putExtra(ENVIAR_NOMBRE, mensaje1);
intent.putExtra(ENVIAR_EDAD, mensaje2);
startActivity(intent);
}
}

Ahora nos vamos a nuestro activity_main en modo gráfico y llamamos a nuestro método enviarMensaje por medio del botón que habíamos creado de la siguiente forma:

Hasta ahí ya estamos enviando nuestros dos datos nombre y edad, pero necesitamos recibirlos:
Entonces vamos a nuestro SegundoActivity.java y ahí escribimos lo siguiente:

public class SegundoActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_segundo);
// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
String mensaje1 = intent.getStringExtra(MainActivity.ENVIAR_NOMBRE);
String mensaje2 = intent.getStringExtra(MainActivity.ENVIAR_EDAD);

// Capture the layout's TextView and set the string as its text
TextView nombre = (TextView) findViewById(R.id.txtNombre);
nombre.setText(mensaje1);
TextView edad = (TextView) findViewById(R.id.txtEdad);
edad.setText(mensaje2);
}
}

Con eso ya hemos terminado nuestra aplicacion pero vamos agregar un extra cada vez que pasamos al siguiente ativity no hay forma de regresar ahi que crearemos un enlace para regresar en nuestro menu para eso deben agregar lo siguiente en su AndroidManifest antes de cerrar aplicaction

<activity android:name=".SegundoActivity"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>

Si no sabes donde colocarlo mira la siguiente imagen:

Bien y con eso hemos terminado, espero les ayude a mejorar sus ejercicios y futuros proyectos.
 Link de la descarga
Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR
ENLACES DE INTERÉS:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat