Kotlin - путь в Activity при передаче во Fragment отображается как нулевой, а затем изменяет значение - PullRequest
0 голосов
/ 09 июля 2019

У меня есть ситуация, в которой я пытаюсь пройти путь от Действия к Фрагменту. Ниже приведен фрагмент моего файла 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, которое отображает значение пути? Заранее спасибо.

1 Ответ

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

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

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