Передача строки из activity в fragment KOTLIN

Облазев весь интернет я не нашел на KOTLIN как передать данные в фрагмент при его создании. Как отправить данные из активити и как принять в фрагменте?

Вот как я сейчас это делаю(Но это не работает и приходит null)
Код MainActivity `

class MainActivity : AppCompatActivity() {
    val manager = supportFragmentManager
        override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

}
fun RegistrationCallFragment(){

    val transaction = manager.beginTransaction()
    val fragment = Registration_second()
    fragment.arguments?.putString("token", "s1231")
    transaction.replace(R.id.fragment_holder, fragment)
    transaction.addToBackStack(null)
    transaction.commit()

}

}`

Код из RegistrationSecond

class Registration_second : Fragment() {

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {

    val key = arguments?.getString("token", "")
    Log.d("PHONE BLYAT", key.toString())

    return inflater.inflate(R.layout.fragment_registration_second, container, false)
}

}

Сейчас данный код падает как только я вызываю данную функцию из MainActivity. Падает он из за вот этой строчки fragment.arguments?.putString("token", "s1231"), если поставить вместо ? !! то код упадет а если оставить так то придет null. Что делать? Как передавать данные из активити в фрагмент при создании? Пожалуйста на kotlin потому что весь проект на kotlin + я не знаю java, да и вообще новичек в это. Заранее Спасибо Огромное!


Ответы (1 шт):

Автор решения: IR42

Вместо fragment.arguments?.putString("token", "s1231") нужно

fragment.arguments = bundleOf("token" to "s1231")
→ Ссылка