Банковское приложение:
У меня есть NavigationDrawerActivity, в котором есть больше фрагментов.Каждый фрагмент создается после нажатия на пункт меню.
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_home) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
} else if (id == R.id.nav_transfer) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new TransferFragment()).commit();
}
return true;
}
Если я нажимаю на элемент меню «передача», создается TransferFragment.Этот фрагмент отвечает за простой перевод денег с одного банковского счета на другой.У меня есть кнопка «выбрать учетную запись» в этом фрагменте, которая запускает (используя намерение) новое действие - ChooseAccountActivity .Это действие представляет собой просто просмотр списка, содержащий все учетные записи, которые могут быть использованы для перевода денег.
После того, как пользователь щелкнет одну из учетных записей, accountId (String) должен быть отправлен BACK в TransferFragment, чтобы пользователь мог продолжать заполнять другие EditTexts (сумма, идентификатор учетной записи получателя).и т. д.)
метод в "ChooseAccountActivity":
public void eventAfterClickOnListViewItem() {
accountsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String accountId = allAccountsList.get(position);
//PASS accountId back to TransferFragment
finish();
}
});
}
Поэтому мне нужно отправить данные (accountId) обратно в TransferFragment.Но Намерение не работает, потому что я работаю с фрагментом.TransferFragment уже создан, поэтому после возврата к фрагменту вызывается только onStart, onResume, ..
Любой совет или совет, как я могу передать данные из действия в уже созданный фрагмент?Я делаю это правильно или я должен изменить свое мышление?