У меня есть ситуация, в которой я пытаюсь пройти путь от Действия к Фрагменту. Ниже приведен фрагмент моего файла MainActivity.kt:
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
val myDir = File(getApplicationContext()?.getExternalFilesDir(null)?.toString() + "/")
// below line displays the path
Toast.makeText(applicationContext, "MainActivity: " + myDir.toString(), Toast.LENGTH_LONG).show()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val bundle = Bundle()
bundle.putString("path", myDir.toString())
// set MainActivityFragment Arguments
val fragobj = MainActivityFragment()
fragobj.setArguments(bundle)
val manager = supportFragmentManager
// Begin the fragment transition using support fragment manager
val transaction = manager.beginTransaction()
// add the fragment on container
transaction.replace(R.id.main_fragment, fragobj)
// Finishing the transition
transaction.commit()
strPackName = getApplicationContext().getPackageName()
}
И фрагмент MainActivityFragment.kt, который получает информацию.
MainActivityFragment.kt
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val strPath = getArguments()?.getString("path")
val view: View = inflater.inflate(R.layout.fragment_main, container, false)
// initially displays this value as null but then changes to value from MainActivity.kt
Toast.makeText(getActivity()?.getApplicationContext(), "MainActivityFragment: " + strPath, Toast.LENGTH_LONG).show()
}
Значение пути изначально отображается как пустое значение, но затем я получаю другое сообщение Toast о том, что значение изменяется на исходное значение из MainActivity. Есть ли способ предотвратить это, чтобы я получил только одно сообщение Toast, которое отображает значение пути? Заранее спасибо.