Android 从Kotlin合成到数据绑定的转换问题
我目前正在尝试将我的应用程序的布局操作从合成更改为数据绑定 我遵循了谷歌教程,它几乎适用于所有情况,但有一个问题有点难以解决,欢迎提供帮助 这就是我需要帮助的地方: 在性别选择部分,我有3张卡片来选择一个人的性别(男人/女人/怀孕)。Behind是一个值,该值将所选性别保留为Int(0=女性,1=男性),但如果单击怀孕案例,我会打开一个对话框,询问怀孕季度(代码2、3和4)。我的问题是,我没有找到一个适合这种情况的正确组织 有人知道如何使用数据绑定吗?我正在使用TextViews处理卡片,但请毫不犹豫地建议其他解决方案 布局XML:Android 从Kotlin合成到数据绑定的转换问题,android,android-databinding,Android,Android Databinding,我目前正在尝试将我的应用程序的布局操作从合成更改为数据绑定 我遵循了谷歌教程,它几乎适用于所有情况,但有一个问题有点难以解决,欢迎提供帮助 这就是我需要帮助的地方: 在性别选择部分,我有3张卡片来选择一个人的性别(男人/女人/怀孕)。Behind是一个值,该值将所选性别保留为Int(0=女性,1=男性),但如果单击怀孕案例,我会打开一个对话框,询问怀孕季度(代码2、3和4)。我的问题是,我没有找到一个适合这种情况的正确组织 有人知道如何使用数据绑定吗?我正在使用TextViews处理卡片,但请
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/longTopMargin"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/card_man"
android:layout_width="80dp"
android:layout_height="75dp"
android:layout_marginTop="@dimen/baseTopMargin"
android:layout_marginBottom="@dimen/baseTopMargin"
android:background="@drawable/white_rounded_rectangle"
android:elevation="2dp"
android:fontFamily="@font/cera_pro_medium"
android:gravity="center"
android:padding="@dimen/baseTopMargin"
android:text="@string/a_man"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/paragraph_text_size" />
<TextView
android:id="@+id/card_woman"
android:layout_width="80dp"
android:layout_height="75dp"
android:layout_marginStart="@dimen/largeTopMargin"
android:layout_marginTop="@dimen/baseTopMargin"
android:layout_marginBottom="@dimen/baseTopMargin"
android:background="@drawable/white_rounded_rectangle"
android:elevation="2dp"
android:fontFamily="@font/cera_pro_medium"
android:gravity="center"
android:padding="@dimen/baseTopMargin"
android:text="@string/a_woman"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/paragraph_text_size" />
<LinearLayout
android:id="@+id/card_pregnant"
android:layout_width="85dp"
android:layout_height="75dp"
android:layout_marginStart="@dimen/largeTopMargin"
android:layout_marginTop="@dimen/baseTopMargin"
android:layout_marginBottom="@dimen/baseTopMargin"
android:background="@drawable/white_rounded_rectangle"
android:elevation="2dp"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/baseTopMargin">
<TextView
android:id="@+id/tv_pregnant_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/cera_pro_medium"
android:gravity="center"
android:text="@string/a_woman"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/paragraph_text_size" />
<TextView
android:id="@+id/tv_pregnant_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/cera_pro_regular"
android:gravity="center"
android:text="@string/a_woman_pregnant"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/paragraph_text_size" />
</LinearLayout>
</LinearLayout>
您应该将您的状态放在活动视图模型或片段视图模型中。用户做出第一个选择后,将其保存在viewmodel中。当您打开DialogFragment时,您可以访问父视图模型,并在用户做出第二个选择时更新父视图状态。因此,如果我理解正确,则不会通过数据绑定运行对话框这取决于您的应用程序。任何东西都可以使用自己的数据绑定、Fragment&databinding Viewmodel、DialogFragment&databinding Viewmodel&Fragment Viewmodel运行