我可以在第一时间将更新的进度值设置为进度栏,并在进度栏中设置textview值。但是在我离开当前活动并再次回到该活动之后。它具有在xml中指定的默认值,如下所示
<ProgressBar
android:id="@+id/batteryLevel"
android:layout_width="45dp"
android:layout_height="20dp"
android:layout_marginEnd="16dp"
android:progressDrawable="@drawable/battery_level"
android:max="100"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/devName"/>
<TextView
android:id="@+id/batteryLevelTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OFF"
android:textColor="#fff"
app:layout_constraintTop_toTopOf="@id/batteryLevel"
app:layout_constraintBottom_toBottomOf="@id/batteryLevel"
app:layout_constraintStart_toStartOf="@id/batteryLevel"
app:layout_constraintEnd_toEndOf="@id/batteryLevel"/>
String battProgress = progress + "%";
batteryTv.setText(battProgress);
batteryTv.invalidate();
batteryTv.requestLayout();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
batteryLevel.setProgress(progress, true);
} else {
batteryLevel.setProgress(progress);
}
我使用的是android api级别28。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
由于 Activity Lifecycle
,这似乎是一个问题。
如果我认为是正确的,则由于以下任何一种原因而发生:
1)您正在onResume
中设置进度数据,当第二个Activity完成并返回时,该数据将再次被调用。
2)退出活动后,您将通过活动2重新创建“进度”活动,而不仅仅是传递更新的数据。