Задать вопрос
PainMain
@PainMain

Как передать строку из Activity to Fragment и передать эту строку в textview?

Имеется MainActivity и BottomNavigationDrawerFragment
Мне нужно передать переменную из MainActivity в BottomNavigationDrawerFragment и задать текст переданной переменной в texview
Вот моя жалкая попытка

MainActivity

override fun showCategory(str: String) {
        mCategory!!.text = str
        newInstance(str)
    }

fun newInstance(index: String): BottomNavigationDrawerFragment {
        val f = BottomNavigationDrawerFragment()
        // Supply index input as an argument.
        val args = Bundle()
        args.putString("index", index)
        f.arguments = args
        return f
    }

BottomNavigationDrawerFragment

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

        var args = arguments
        textViewName.text = args!!.getString("index", "default") // Здесь возникает ошибка

        return inflater.inflate(R.layout.fragment_bottom_navigation_drawer, container, false)
    }
  • Вопрос задан
  • 565 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Вы обращаетесь к textViewName скорей всего через kotlin-android-extensions, в методе onCreateView() вью ещё не существует. Можно либо достать его из view, который инфлейтится, либо обращаться после вызова onCreateView(), например в onActivityCreated()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@zeekenru
val view = inflater.inflate(R.layout.fragment_bottom_navigation_drawer, container, false)
view.textViewName.text = args!!.getString("index", "default")

или
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        textViewName.text = arguments!!.getString("index", "default")
}
Ответ написан
@kristoft
Покажите верхние строчки вашего `build.gradle`, layout и импорты BottomNavigationDrawerFragment.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы