Изменить значение TextView фрагмента из CustomView

У меня есть 2 фрагмента: GameFragment и PostGameFragment. В GameFragment у меня есть CustomView со счетом игрока.

Когда игрок проигрывает, я создал onLoseListener, который говорит GameFragment измениться на PostGameFragment, и я хочу обновить TextView со значением счета, который находится внутри CustomView.

Как мне это сделать? Я пробовал textView.text = valueToUpdate внутри CustomView, но выдает ошибку: textView не должен быть нулевым

Вот мой метод PostGameFragment onCreateView. В этом XML-фрагменте находится TextView, который я хочу обновить.

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

    val view: View = inflater.inflate(R.layout.fragment_post_game, container, false)
    view.postGameLayout.setBackgroundResource(R.drawable.ic_postgame)

    view.button.setOnClickListener { view ->
        activity!!.supportFragmentManager
            .beginTransaction()
            .replace(R.id.fragment_holder,GameFragment.newInstance() )
            .addToBackStack(GameFragment.toString())
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .commit()
    }

    // Return the fragment view/layout
    return view

}

А вот метод внутри моего CustomView, этот метод проверяет, проиграл ли игрок, если нет, то добавляет +1 к счету. Я хочу обновить TextView со счетом, когда игрок проигрывает.

fun checkLoser() {        
    if (ballInGame.posy >= height) {
        stopAnimation()
        onLoseListener.invoke()

    }else{
        score += 1
    }
}

не могли бы вы поделиться фрагментом кода.

TomD 12.07.2019 02:14

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

hardartcore 12.07.2019 09:03

я обновил пост с кодом

Puntogris 12.07.2019 17:21
0
3
57
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Пожалуйста, проверьте, что значение valueToUpdate не равно нулю и привязывает текстовое представление findViewById.

пытаться

textview.setText(valueToUpdate);

Другие вопросы по теме