Передача аргументов Bundle во фрагмент и последующее признание аргументов недействительнымиAndroid

Форум для тех, кто программирует под Android
Гость
Передача аргументов Bundle во фрагмент и последующее признание аргументов недействительными

Сообщение Гость »

У меня есть две точки входа в мой фрагмент: одна без передачи Bundle, а вторая передает Bundle с аргументом. Я заметил, что после того, как я передал ему аргумент, фрагмент сохраняет этот аргумент, и когда я перехожу к фрагменту без передачи аргумента, аргумент все еще присутствует.
Я попробовал установка аргументов в ноль:

Код: Выделить всё

    barcode = NO_BARCODE
arguments?.let {
barcode = it.getString(SaleFragment.BARCODE, NO_BARCODE)
createNewDbItemDialog().show()
arguments = null
}
Однако это имеет нежелательный побочный эффект: этот фрагмент больше никогда не будет получать аргументы, даже когда я перехожу к нему с аргументом:

Код: Выделить всё

            findNavController(requireActivity(), R.id.nav_host_fragment)
.navigate(
R.id.products_fragment,
Bundle().apply { putString(BARCODE, barcode) },
NavOptions.Builder()
.setPopUpTo(R.id.sale_fragment, inclusive = false, saveState = true)
.setRestoreState(true)
.build()
)
Аргумент штрих-кода больше не принимается. Только в первый раз, после чего аргументам присваивается значение null.
Как я могу надежно определить в своем фрагменте, был ли передан аргумент при переходе к нему?

Подробнее здесь: https://stackoverflow.com/questions/783 ... afterwards

Вернуться в «Android»