Я пытаюсь обновить sh данные в моем фрагменте каждый раз, когда пользователь нажимает на них в Навигации по нижнему меню. Я уже написал интерфейс, который вызывается каждый раз, когда фрагмент выбирается пользователем. Проблема в том, что метод внутри моего фрагмента не имеет доступа к представлению фрагмента (я полагаю):
MainMenu
viewPager = findViewById(R.id.frame_container)
viewPager!!.offscreenPageLimit = 5
viewPager!!.orientation = ViewPager2.ORIENTATION_HORIZONTAL
viewPager!!.adapter = pageAdapter
viewPager!!.currentItem = 0
viewPager!!.isUserInputEnabled = false
viewPager!!.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
if(position == 2) {
val mFragment = ListFragment()
mFragment.ready(this@MainMenu)
}
}
})
Интерфейс "Готов":
interface ReadyInterface {
fun ready(activity: FragmentActivity?)
}
и ListFragment:
class ListFragment: Fragment(), ReadyInterface {
var mView : View? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_list, container, false)
this.mView = view
val user = FirebaseAuth.getInstance().currentUser
return if (user != null) {
view
} else {
val unregisteredView = inflater.inflate(R.layout.fragment_unregistred, container, false)
val registerNow = unregisteredView.findViewById<TextView>(R.id.textview_registernow)
unregisteredView
}
override fun ready(activity: FragmentActivity?) {
testText = mView!!.findViewById(R.id.test_text)
testText.text = "Test Text here"
Toast.makeText(activity!!.applicationContext,"Test",Toast.LENGTH_LONG).show()
}
Этот код здесь дает сбой с "kotlin .KotlinNullPointerException" on line " testText.text = .... "
Так что я полагаю, что готовый забавный человек не имеет доступа к просмотру моего фрагмента из-за жизненного цикла фрагментов, я прав? Как я мог это исправить?