Как завершить фрагмент из того же фрагмента после того, как он передает некоторые данные в активность? - PullRequest
1 голос
/ 06 апреля 2020

Я делаю приложение, и у меня есть следующее:

У меня есть только одно действие, которое показывает карты в представлении переработчика, и у меня есть фрагмент, который позволяет редактировать эти карты.

Когда пользователь нажимает на любую карточку, данные карточки отправляются во Фрагмент, и Фрагмент может изменять их на основе ввода пользователя, а затем измененные данные отправляются обратно в Упражнение. Я хочу, чтобы фрагмент не отображал, скажем, данные карты № 1, если после редактирования карты № 1 пользователь хочет редактировать карту № 2, и поэтому я хочу завершить предыдущий фрагмент, как только данные карты № 1 будут отредактированы , так что к тому времени, когда пользователь нажмет на карточку №2, больше не будет возможности снова увидеть карточку № 1.

Подскажите, что мне делать, пожалуйста.

1 Ответ

1 голос
/ 06 апреля 2020

Вы можете удалить фрагмент из этого же фрагмента, используя следующий код

getFragmentManager().beginTransaction()
                    .remove(ActivityFragment.this).commit();

ОБНОВЛЕНИЕ

Связь с действием из фрагмента

Объявить интерфейс во фрагменте

public interface cardListener{
    void onClick (String value);
}

Также создать экземпляр этого интерфейса во фрагменте

private cardListener listener;

Заставьте свою деятельность реализовать этот интерфейс

После реализации вашего интерфейса в Activity вы получаете следующий метод в активности

@Override
    public void onClick (String value) {
    //deal with the data here
    }

Теперь, в вашем фрагменте, перед закрытием фрагмента , вы можете выполнить метод OnClick таким образом.

listener.onClick(value);
getFragmentManager().beginTransaction()
                    .remove(ActivityFragment.this).commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...