Android-更新布局中的TextView包含在主布局中多次

时间:2019-04-15 10:06:46

标签: android android-layout mvvm textview android-xml

有没有办法更新包含在布局中且包含3次的textview中的文本?

因此,方案是我调用一个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的textview中

0 个答案:

没有答案