Есть ли способ обновить текст в текстовом представлении, которое находится во включенном макете и включено, скажем, 3 раза?
Таким образом, сценарий заключается в том, что я вызываю API и получаю 3 значения и использую viewModelя пытаюсь обновить, но это не отражается во включенном макете
1.Основной XML
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<include
android:id="@+id/goalAcieved"
layout="@layout/item_goals_status"
bind:statusname="@{@string/status_achieved}"
bind:count="@{viewModel.stateAchievedObsInt}"/>
<include
android:id="@+id/goalNotStarted"
layout="@layout/item_goals_status"
bind:statusname="@{@string/status_not_started}"
bind:count="@{viewModel.stateNotStartedObsInt}" />
</LinearLayout>
2.Включить XML
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="count"
type="androidx.databinding.ObservableInt"/>
</data>
<TextView
android:id="@+id/count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="@dimen/margin_15"
android:text="@{String.valueOf(count)}"
android:textAppearance="@style/style_14sp_tab_black"
android:textStyle="bold" />
3.Просмотреть фрагмент кода модели
for (goal in t.goals!!) {
//increments the goal count
if (goal.status!! == 0) {
stateNotStartedObsInt.set(stateNotStartedObsInt.get()+1)
}else if(goal.status!! == 1){
stateAchievedObsInt.set(stateAchievedObsInt.get()+1)
}else if(goal.status!! == 2){
stateNotApplicableObsInt.set(stateNotApplicableObsInt.get()+1)
}
}
Поэтому, когда я обновляю ObservableInt, он не отражается во включенном текстовом представлении xml