Как установить тег фрагмента по коду?

Я не нашел что-то вроде метода setTag(String tagName) в классе Fragment . Единственный способ установить тег Fragment который я нашел, – это сделать FragmentTransaction и передать имя тега в качестве параметра.

Это единственный способ явно установить тег Fragment кодом?

Solutions Collecting From Web of "Как установить тег фрагмента по коду?"

Да. Таким образом, единственный способ – во время транзакции, например, с помощью add , replace или как части макета.

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

Вы можете установить тег на фрагмент таким образом:

 Fragment fragmentA = new FragmentA(); getFragmentManager().beginTransaction() .replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG") .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit(); 

Вы можете указать тег внутри xml-файла макета активности.

Msgstr "Поставить атрибут android: tag уникальной строкой."

Так же, как вы назначаете id в макете xml.

  android:tag="unique_tag" 

Ссылка на руководство разработчика

Вы также можете получить все фрагменты следующим образом:

Для v4-фрагментов

 List<Fragment> allFragments = getSupportFragmentManager().getFragments(); 

Для app.fragment

 List<Fragment> allFragments = getFragmentManager().getFragments(); 

Вы можете добавить тег в качестве свойства для аргументов Fragment . Он будет автоматически восстановлен, если фрагмент будет уничтожен, а затем воссоздан ОС .

Пример : –

  final Bundle args = new Bundle(); args.putString("TAG", "my tag"); fragment.setArguments(args);