我有2个片段:GameFragment和PostGameFragment 在GameFragment中,我有一个CustomView,得分很高。
当玩家失败时,我创建了一个onLoseListener
,告诉GameFragment更改为PostGameFragment,我想在那里使用CustomView内的得分值更新TextView。
我该怎么做?
我在CustomView中尝试了textView.text = valueToUpdate
,但它给了我错误: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
}
}
答案 0 :(得分:0)
请检查您的valueToUpdate不为空,并绑定您的textview findViewById。
答案 1 :(得分:0)
尝试
textview.setText(valueToUpdate);