Android-如何让倒计时计数器更改文本视图
既然我找不到任何类似的东西,我也不明白为什么它不起作用,有人能帮我解决吗 我有一个小安卓应用程序,它使用一个主要活动,其余部分由片段组成。 在这一片段中,我有一个计数器,它应该更新通过数据绑定连接到ViewFragment中变量的TextView。这是我的计时器,timerText是通过布局xml绑定的变量Android-如何让倒计时计数器更改文本视图,android,kotlin,timer,android-databinding,Android,Kotlin,Timer,Android Databinding,既然我找不到任何类似的东西,我也不明白为什么它不起作用,有人能帮我解决吗 我有一个小安卓应用程序,它使用一个主要活动,其余部分由片段组成。 在这一片段中,我有一个计数器,它应该更新通过数据绑定连接到ViewFragment中变量的TextView。这是我的计时器,timerText是通过布局xml绑定的变量 private val timer = object : CountDownTimer(R.integer.defaultTimeMilli.toLong(), 1000) {
private val timer = object : CountDownTimer(R.integer.defaultTimeMilli.toLong(), 1000) {
override fun onTick(millisUntilFinished: Long) {
timerText = (millisUntilFinished/1000).toString()
}
override fun onFinish() {
_timerIsFinished.value = true
}
}
即使计时器启动,我的片段中的文本也不会在节拍上更新。如果你需要我的代码中的更多东西,尽管问。提前谢谢
编辑:
以下是XML文件的相关部分:
<TextView
android:id="@+id/timerTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{gameFragmentViewModel.timerText}"
android:textAlignment="center"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pointsTextView"
app:layout_constraintVertical_bias="0.228" />
找到了它不起作用的原因。 如果像我一样使用数据绑定,请将字符串放入LiveData变量中。 这意味着我现在得到了
private var _timerText = MutableLiveData<String>()
val timerText : LiveData<String>
get() = _timerText
private var\u timerText=MutableLiveData()
val timerText:LiveData
get()=\u timerText
timerText是布局XML引用的文本,timerText由计时器编辑。尝试使用postValue而不是setValue。