getArguments () возвращает ноль - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь передать данные из действия во фрагмент, но везде, где я использую getArguments, оно всегда равно нулю.

Вот мой фрагмент newInstance:

companion object {
    private var IS_FROM_SETTINGS : String = "IS_FROM_SETTINGS"
    fun newInstance(isFromSettings : Boolean):OnBoardingLocalitzacioFragment{
        val args = Bundle()
        args.putBoolean(IS_FROM_SETTINGS, isFromSettings)
        val fragment = OnBoardingLocalitzacioFragment()
        fragment.arguments = args
        return fragment
    }
}

В упражнении Iсоздайте фрагмент, выполнив:

 onBoardingFragments = mutableListOf(
            OnBoardingLocalitzacioFragment.newInstance(isFromSettings)::class,
            OnBoardingPresentacioFragment::class,
            OnBoardingNotificacionsFragment::class
    )

    adapter = OnBoardingPagerAdapter(supportFragmentManager, onBoardingFragments)

Затем вернемся к фрагменту:

arguments?.getBoolean(IS_FROM_SETTINGS)!!

Я пытался использовать аргументы get в разных методах, но все еще не повезло.

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

В вашем методе ниже:

onBoardingFragments = mutableListOf(
            OnBoardingLocalitzacioFragment.newInstance(isFromSettings)::class,
            OnBoardingPresentacioFragment::class,
            OnBoardingNotificacionsFragment::class
    )

Вы передаете свой class фрагмент instance вашего фрагмента, который вы пытаетесь создать с newInstance забавой.Я думаю, что вы создаете новый экземпляр ваших фрагментов в своем адаптере из его класса.Таким образом, ваши аргументы нулевые.

Вот пример кода:

 onBoardingFragments = mutableListOf(
            OnBoardingLocalitzacioFragment.newInstance(isFromSettings),
            OnBoardingPresentacioFragment(),
            OnBoardingNotificacionsFragment()
    )
0 голосов
/ 19 октября 2018

Вы просто передаете классы в свой список, я предполагаю, что newInstance никогда не вызывается, и все ваши фрагменты создаются по-разному в OnBoardingPagerAdapter без каких-либо аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...