'Kotlin Bundle send null values

I try to send values of my data from one fragment which is contains Instruments to HolderList which is contain Holder data for comparing values in ArrayList of String which is equal to instrument.id , but when i'm sending values, it's always null. I haven't a lot of experience with sending data between Fragments, but only in this case always return null. Thanks for help!

How i send values

 fun sendValues(){
        val holderList = HoldersListFragment.newInstance()
        val bundle = Bundle()
        bundle.putSerializable(Constants.PUT_INSTR_HOLDER_LIST , instruments)
        holderList.arguments = bundle
    }

When i try to send it

 private fun publishInst() = with(b) {
        val nameInst = edInstName.text.toString()
        val metkaInst = edInstMetka.text.toString()
        instruments = Instrument(
            name = nameInst ,
            instrInfo = metkaInst ,
            id = UUID.randomUUID().toString() ,
            instrType = 0
        )

        mainViewModel.publishInstrument(instruments!!).observe(viewLifecycleOwner) {
            when (it) {
                is State.Loading -> {
                    Toast.makeText(requireContext() , "Сохраняется..." , Toast.LENGTH_SHORT)
                        .show()
                }
                is State.Success -> {
                    sendValues()
                    bottomNavigationView.selectedItemId = R.id.instruments
                }
                is State.Failed -> {
                    Snackbar.make(requireView() , it.message , Snackbar.LENGTH_SHORT).show()
                }
            }
        }
    }

Instance of bundle

@ExperimentalCoroutinesApi
class HoldersListFragment : BaseFragment() , HoldersAdapter.Listener {
    private lateinit var b: FragmentHoldersListBinding
    private lateinit var adapter: HoldersAdapter

    private var bundle: Bundle? = null

    private val fbViewModel: FbViewModel by activityViewModels()

    override fun onCreateView(
        inflater: LayoutInflater , container: ViewGroup? ,
        savedInstanceState: Bundle?
    ): View {
        b = FragmentHoldersListBinding.inflate(inflater , container , false)
        bundle = arguments
        setHasOptionsMenu(true)
        val activity = activity as AppCompatActivity
        activity.setSupportActionBar(b.toolbar2)
        b.toolbar2.inflateMenu(R.menu.holder_list_menu)
        return b.root
    }

How i parse values and use it

override fun deleteItem(holder: Holder) {
        DeleteDialog.showDialog(context as AppCompatActivity , object : DeleteDialog.Listener {
            override fun onClick() {
                if(bundle!= null){
                    val instrument = bundle?.getSerializable(Constants.PUT_INSTR_HOLDER_LIST) as Instrument
                    holder.instrOfHolder.forEach {
                        res->
                        if(res == instrument.id){
                            val instrumentUpdate = instrument.copy(instrType = 0)
                           
                    fbViewModel.checkIsFreeUpdate(instrumentUpdate).observe(viewLifecycleOwner,{
                               when (it) {
                                   is State.Loading -> {
                                   }
                                   is State.Success -> {
                                       
                        Toast.makeText(requireContext(),"Allright",Toast.LENGTH_SHORT).show()
                                   }
                                   is State.Failed -> {

                                       Log.d("Error" , "Error name :${it.message}")
                                   }
                               }
                           })
                        }
                    }
                }
                fbViewModel.deleteHolder(holder)
            }
        })
    }



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source