Как вернуть результат активности ребенка в Parent в Android?

Я запускаю дочернюю операцию нажатием кнопки «Родитель». И я вычисляю некоторый результат (типа string) в дочерней активности и заканчиваю возвращение ребенка в Parent. Есть ли лучший способ получить этот результат в Parent, используя интенты или дополнения? (Я могу получить этот результат в Parent, сделав переменную результата общедоступной и статической в Child). Пожалуйста, помогите мне. Я новичок в разработке для Android.

<code>startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);
</code>

Что я должен написать в onActivityResult () из Parent?

Ответы на вопрос(2)

Решение Вопроса

startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);

Вы можете использовать метод putExtras () для передачи значений между действиями:

В детской деятельности:

Intent data = new Intent();
data.putExtra("myData1", "Data 1 value");
data.putExtra("myData2", "Data 2 value");
// Activity finished ok, return the data
setResult(RESULT_OK, data);
finish();

А в родительском действии вы можете переопределить onActivityResult (), и внутри вы можете иметь параметр Intent, а из параметра Intent этого метода вы можете получить дополнительные значения, переданные из дочернего действия, такие как intent.getStringExtra или intent.getSerializableExtra.

например:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
        if (data.hasExtra("myData1")) {
            Toast.makeText(this, data.getExtras().getString("myData1"),
                Toast.LENGTH_SHORT).show();
        }
    }
}
 24 нояб. 2014 г., 17:20
Спасибо за пример. Это помогло мне.
 29 сент. 2016 г., 08:28
В этом случае REQUEST_CODE является ACTIVITY_CONSTANT из примера.
 SANDHYA23 мая 2012 г., 05:54
Отлично. Большое спасибо
 27 нояб. 2013 г., 13:42
После вызова setResult (...); вам нужно вызвать финиш (); закрыть «дочерний элемент» деятельность.
 SANDHYA14 мая 2012 г., 13:44
Как я могу вернуть результат от ребенка к родителю? Ваш ответ хорошо работает, если я хочу передать значения от родителя к ребенку. Но мне нужно завершить свою дочернюю активность после вычисления результата в child и вернуть результат родителю.

Intent intent = new Intent(getApplicationContext(), yourChildActivity.class);
intent.putExtra("key", "value");
startActivityForResult(intent, ACTIVITY_CONSTANT);

в дочерней активности, чтобы отправить результат вашей родительской активности через

Intent data = new Intent();
data.putExtra("key1", "value1");
data.putExtra("key2", "value2");
// Activity finished return ok, return the data
setResult(RESULT_OK, data);
finish();

и получить информацию о результатах детской активности в вашей родительской активности

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
        if (data.hasExtra("key1") && data.hasExtra("key2")) {
            Toast.makeText(
                this,
                "Your reult is :  "data.getExtras().getString("key1") + " " + data.getExtras().getString("key2"),
                Toast.LENGTH_SHORT).show();
        }
    }
}

Ваш ответ на вопрос