Можете ли вы дать дополнительные фрагменты при замене? - PullRequest
2 голосов
/ 05 декабря 2011

В настоящее время у меня есть приложение, которое в значительной степени опирается на Intents и дополнения, данные им перед началом действия. Дополнения используются при вызове веб-службы, которая, в свою очередь, предоставляет контент, который должен быть показан

Я пытаюсь преобразовать эту модель в ту, где у меня есть статический Fragment (назовем его Player) внизу моего экрана, а другой Fragment (назовем его Content) над ним, который покажет основное содержание. При выборе параметров на главном экране будет отображаться другой контент, заменяя Контент Fragment.

Но эти новые Fragments в настоящее время являются Intents, которые так сильно полагаются на дополнения. Есть ли способ заменить Fragment на новый, но все же иметь возможность добавлять к нему дополнительные функции?

Если так, допустим, у меня есть следующий фрагмент кода:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist");
        ft.commit();

Как добавить дополнения в список MusicAlbumList?

Если это невозможно, как я получу данные, которые в настоящее время передаются через дополнительные функции, в мой новый фрагмент, пока он не закроется принудительно из-за отсутствия важных данных?

Ответы [ 2 ]

9 голосов
/ 16 февраля 2013

Или вы можете сделать это

MusicAlbumList fragment = new MusicAlbumList();
Bundle args = new Bundle();
args.putString("StringName","Value here");
fragment.setArguments(args);

тогда сделай замену. Затем во фрагментах onStart или onCreate вызовите this.getArguments();, чтобы вытащить пакет, а затем получите свои дополнения.

2 голосов
/ 05 декабря 2011

Измените конструктор MusicAlbumList из конструктора по умолчанию на конструктор с такими аргументами, как new MusicAlbumList (int arg1, ...), и передайте значения, которые вы хотите установить, через конструктор

...