Я хочу отправить данные от фрагмента к фрагменту - PullRequest
0 голосов
/ 02 июля 2019

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

вот данные о нажатии кнопки, отправленные во фрагмент с использованием аргумента

//sender fragment 
view.btnjavafragment.setOnClickListener {
            newInstance("helllo")
        }

  companion object {
        @JvmStatic
        fun newInstance(mystring:String) = javaFragment().apply {
            arguments = Bundle().apply {
              putString("sentdata",mystring)
              if(arguments!=null){
                  Toast.makeText(context,"data sent",Toast.LENGTH_SHORT).show()
              }
            }
        }
    }

//receiving fragment 
override fun onAttach(context: Context?) {
        super.onAttach(context)
        arguments?.getString("sentdata","")?.let {
            string = it
            tvdatamessage.setText(string)
        }
    }

Ответы [ 3 ]

2 голосов
/ 02 июля 2019

Привет. Пожалуйста, перейдите по ссылке ниже для ваших решений.

https://www.journaldev.com/14207/android-passing-data-between-fragments

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

var nameBundle = Bundle()
nameBundle.putString("youKey", edtName.text.toString())
it.findNavController().navigate(R.id.tofragmentName, nameBundle)
0 голосов
/ 02 июля 2019

Вы можете использовать SafeArgs, которые являются частью компонента навигации на Jetpack. Здесь у вас есть хороший учебник, сделанный Google.

0 голосов
/ 02 июля 2019

Не рекомендуется, чтобы два фрагмента связывались напрямую. Ознакомьтесь с документацией и примерами здесь. https://developer.android.com/training/basics/fragments/communicating

Я бы порекомендовал обычную ViewModel и наблюдал за изменениями там.

...