Una vez que se ha creado el Intent que permite iniciar otra Activity, es posible indicar una serie de valores que se desean enviar a la Activity que iniciará utilizando el método putExtra de la clase Intent.

Este método utiliza como primer parámetro un nombre que se le asigna al valor extra que se la va a proporcionar a otra Activity. Este nombre puede ser cualquier String, aunque se recomienda que se indique como prefijo el nombre del paquete de la aplicación, para evitar duplicidades con otras aplicaciones. Para facilitar su uso, es recomendable también crear una constante estática donde se almacene el nombre del valor extra.

public class MainActivity extends Activity {
public final static String MENSAJE = "com.paquete.aplicacion.MENSAJE";
...
}

El segundo parámetro debe ser el valor que se desea pasar. Debes comprobar la API para comprobar los distintos tipos de valores que se pueden indicar.

Intent intent = new Intent(this, SegundaActivity.class);
intent.putExtra(MENSAJE, "Mensaje que quiero enviar");

La recogida de los datos extra, en la Activity que ha sido iniciada por el Intent, se realiza utilizando el método getIntent, que permite obtener el objeto Intent que ha realizado la llamada a la Activity. Además deberás usar uno de los métodos get...Extra, de la clase Intent, que permite recoger un determinado valor extra, indicando el tipo de dato del mismo (por ejemplo, getStringExtragetIntExtra, etc). Debes comprobar la API para comprobar los distintos métodos existentes para obtener los datos extra, así como los parámetros que deben utilizarse.

Intent intent = getIntent();
String mensaje = intent.getStringExtra(MainActivity.MENSAJE);

Como ejemplo, observa los siguientes códigos fuentes que permiten crear una aplicación con una Activivy Principal con dos botones. Al pulsar uno de ellos aparece, en una segunda Activity, el mensaje "Ha pulsado el primer botón" seguido del número 1, y si se pulsa el otro botón aparece "Ha pulsado el segundo botón" seguido del número 2.

import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.content.Intent;

public class Principal extends Activity {

public final static String MSG_BOTON_PULSADO = "com.example.pasardatosactivity.MSG_BOTON_PULSADO";
public final static String NUM_BOTON = "com.example.pasardatosactivity.NUM_BOTON";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_principal);
    }

    public void onClickButton1(View v) {
     Intent intent = new Intent(this, SegundaActivity.class);
     intent.putExtra(MSG_BOTON_PULSADO, "Ha pulsado el primer botón");
     intent.putExtra(NUM_BOTON, 1);
     startActivity(intent);
    }
    
    public void onClickButton2(View v) {
     Intent intent = new Intent(this, SegundaActivity.class);
     intent.putExtra(MSG_BOTON_PULSADO,  "Ha pulsado el segundo botón");
     intent.putExtra(NUM_BOTON, 2);
     startActivity(intent);
    }
}
package com.example.pasardatosactivity;

import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;

public class SegundaActivity extends Activity {

TextView textView1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_segunda);

        //Recoger datos         Intent intent = getIntent();
        String mensaje = intent.getStringExtra(Principal.MSG_BOTON_PULSADO);
        int numBoton = intent.getIntExtra(Principal.NUM_BOTON, 0);

        //Mostrar datos recogidos         textView1 = (TextView) findViewById(R.id.textView1);
        textView1.setText(mensaje + " (" + numBoton + ")");
    }
 
}