0

Я разрабатываю программу для Android, и у меня есть два фрагмента F1, F2, каждый из которых размещен по своей собственной активности, A1 и A2 соответственно, так что мне нужна связь между фрагментами A1F1 и A2F2. A1F1 вызывает A2F2, и я успешно передал фрагментные аргументы от A1F1 до A2F2. Когда пользователь находится на A2F2 и обращается к кнопке «Назад», чтобы вернуться в A1F1, я хочу передать данные от A2F2 до A1F1 до того, как A2F2 будет уничтожен. Я был безуспешным в этом. Вот что я до сих пор придумал.Android - Получение результатов с фрагментами

A2F2

private static final String ARG_ID = "XZY"; 
private int var = 0; 


public void returnResult(){ 
    Intent data = new Intent(); 
    data.putExtra(ARG_ID, var); 
    getActivity().setResult(Activity.RESULT_OK, null); 
} 

Программа падает на mVar = data.getIntExtra(ARG_ID, 0); линии. Точка останова показывает

requestCode = 1 
resultCode = -1 
data = null 
mVar = 0 

В A2F2, я называю хостинг активности getResult(), потому что, как я понимаю, фрагменты не могут держать результаты. Пожалуйста помоги.

ответ

0

Вы не добавляете данные о намерениях к вашему результату. Измените свой метод на -

public void returnResult(){ 
    Intent data = new Intent(); 
    data.putExtra(ARG_ID, var); 
    getActivity().setResult(Activity.RESULT_OK, data); //Change is here 
} 
+0

Это сработало! Спасибо. Сейчас кажется очевидной ошибкой, но мне нужны были некоторые экспертные глаза, чтобы указать на это. Еще раз спасибо! – KleinBottle

Смежные вопросы