У меня есть 2 действия, Activity1 и Activity2 .
У Activity1
меня есть кнопка и TextView . Когда кнопка нажата, Activity2 запускается.
У Activity2
меня есть EditText .
Я хочу отобразить данные, полученные из EditText в Activity2 в TextView в Activity1, когда назад нажимается из Activity2 .
может кто-нибудь помочь мне с кодом, чтобы сделать эту работу?
android
android-activity
parent-child
pass-data
kumareloaded
источник
источник
startActivityForResult
Activity2
помещает значение в постоянное хранилище иActivity1
читает его оттуда.Ответы:
Запустите Activity2 с помощью
startActivityForResult
и используйтеsetResult
метод для отправки данных обратно из Activity2 в Activity1. В Activity1 вам необходимо переопределитьonActivityResult
для обновленияTextView
сEditText
данными деятельности2.Например:
В Activity1 запустите Activity2 как:
В Activity2 используйте
setResult
для отправки данных обратно:А в Activity1 получите данные с
onActivityResult
:Если вы можете, также используйте SharedPreferences для обмена данными между действиями.
источник
SharedPreferences
затем посмотреть этот примерActivity1 должен начать Activity2 с
startActivityForResult()
.Activity2 следует использовать
setResult()
для отправки данных обратно в Activity1 .В деятельности2 ,
В Деятельности1 ,
источник
Другие ответы не работают , когда я ставлю
setResult
вonBackPressed
. Комментирование вызова суперonBackPressed
и вызовfinish
вручную решает проблему:И в первом упражнении:
источник
Примите это как альтернативу startActivityforResult. Но имейте в виду, что для таких случаев этот подход может быть дорогим с точки зрения производительности, но в некоторых случаях вам может потребоваться его использование.
В Деятельности2
В Деятельности1,
источник
Из вашей FirstActivity вызовите SecondActivity с помощью метода startActivityForResult ().
Например:
В вашей SecondActivity установите данные, которые вы хотите вернуть обратно в FirstActivity. Если вы не хотите возвращаться, не устанавливайте ничего.
Например: в secondActivity, если вы хотите отправить обратно данные:
Если вы не хотите возвращать данные:
Теперь в вашем классе FirstActivity напишите следующий код для метода onActivityResult ().
источник
это ваша первая деятельность1.
Отсюда вы запускаете ваш Activity2.class с помощью startActivityForResult (mRequestCode, Activity2.class);
Теперь это ваша вторая активность, зовут деятельность 2
Теперь, когда вы закончили со своим вторым Activity, вы вызываете метод setResult () из onBackPress () или из любого нажатия кнопки, когда ваша Activity2 уничтожит, а затем будет вызываться метод обратного вызова Activity1 onActivityResult () , откуда вы можете получить свои данные из намерения. ..
Надеюсь, это поможет вам ... :)
источник
Прочитайте это:
Эти статьи помогут вам понять, как передавать данные между двумя действиями в Android.
источник
TL; DR Использование
Activity.startActivityForResult
Длинный ответ:
Вы должны начать с чтения документации для разработчиков Android. Конкретно тема вашего вопроса освещена в
Starting Activities and Getting Results
разделеActivity
документации.Как, например, код, Android SDK предоставляет хорошие примеры. Кроме того, другие ответы здесь дают вам короткие фрагменты примера кода для использования.
Однако, если вы ищете альтернативы, прочитайте этот ТАК вопрос . Это хорошая дискуссия о том, как использовать
startActivityForResults
с фрагментами, а также пара подходов для передачи данных между действиями.источник
и у меня есть проблема, которую я хотел сделать, отправляя этот тип данных в программной кнопке, которую я сделал, и программную клавишу, которая используется по умолчанию на каждом устройстве Android, поэтому я сделал это, сначала я сделал
Intent
в своем «А»Activity
:Затем в моем втором Деятельности я объявил Поле в моем "B"
Activity
:затем, после того, как я сделал свой запрос успешно или когда я захотел сообщить «A» Activity, что это задание успешно выполнено, измените значение resultCode на то же, что я сказал в «A»,
Activity
что в моем случае равно «60», и затем:PS: не забудьте удалить
Super
метод onBackPressed, если вы хотите, чтобы это работало правильно.тогда я должен также вызвать
onActivityResult
метод в моей "A" деятельности:это все, надеюсь, это поможет вам. #HappyCoding;
источник