Resposta complementar: Convenções de nomenclatura para a sequência de chaves
O processo real de transmissão de dados já foi respondido, no entanto, a maioria das respostas usa seqüências codificadas para o nome da chave no Intent. Geralmente, isso é bom quando usado apenas no seu aplicativo. No entanto, a documentação recomenda o uso de EXTRA_*
constantes para tipos de dados padronizados.
Exemplo 1: Usando Intent.EXTRA_*
Chaves
Primeira atividade
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);
Segunda atividade:
Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);
Exemplo 2: Definindo sua própria static final
chave
Se uma das Intent.EXTRA_*
Strings não atender às suas necessidades, você poderá definir suas próprias no início da primeira atividade.
static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";
Incluir o nome do pacote é apenas uma convenção se você estiver usando apenas a chave no seu próprio aplicativo. Mas é necessário evitar conflitos de nomenclatura se você estiver criando algum tipo de serviço que outros aplicativos podem chamar com um Intent.
Primeira atividade:
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);
Segunda atividade:
Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);
Exemplo 3: Usando uma Chave de Recurso String
Embora não mencionado na documentação, esta resposta recomenda o uso de um recurso String para evitar dependências entre as atividades.
strings.xml
<string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>
Primeira atividade
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);
Segunda atividade
Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));