Дополнительный ответ: Соглашения об именах для ключевой строки
Фактический процесс передачи данных уже получен, однако в большинстве ответов используются жестко закодированные строки для имени ключа в намерении.Это обычно хорошо, когда используется только в вашем приложении.Однако в документации рекомендуется с использованием констант 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
Хотя это не упоминается в документации, этот ответ рекомендует использовать ресурс 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));