Передача аргументов 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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