Дополнительный ответ: правила именования ключевой строки
На фактический процесс передачи данных уже был дан ответ, однако в большинстве ответов используются жестко закодированные строки для имени ключа в намерении. Обычно это нормально, когда используется только в вашем приложении. Однако в документации рекомендуется использовать EXTRA_*
константы для стандартизованных типов данных. .
Пример 1. Использование Intent.EXTRA_*
ключей
Первое действие
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(Intent.EXTRA_TEXT, "my text");
startActivity(intent);
Второе действие:
Intent intent = getIntent();
String myText = intent.getExtras().getString(Intent.EXTRA_TEXT);
Пример 2. Определение собственного static final
ключа
Если одна из Intent.EXTRA_*
строк не соответствует вашим потребностям, вы можете определить свою собственную в начале первого действия.
static final String EXTRA_STUFF = "com.myPackageName.EXTRA_STUFF";
Включение имени пакета - это просто соглашение, если вы используете ключ только в своем собственном приложении. Но необходимо избегать конфликтов имен, если вы создаете какую-то службу, которую другие приложения могут вызывать с помощью намерения.
Первое действие:
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(EXTRA_STUFF, "my text");
startActivity(intent);
Второе действие:
Intent intent = getIntent();
String myText = intent.getExtras().getString(FirstActivity.EXTRA_STUFF);
Пример 3. Использование строкового ключа ресурса
Хотя это не упоминается в документации, этот ответ рекомендует использовать ресурс String, чтобы избежать зависимостей между действиями.
strings.xml
<string name="EXTRA_STUFF">com.myPackageName.MY_NAME</string>
Первое действие
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(getString(R.string.EXTRA_STUFF), "my text");
startActivity(intent);
Второе действие
Intent intent = getIntent();
String myText = intent.getExtras().getString(getString(R.string.EXTRA_STUFF));
person
Suragch
schedule
13.11.2016