Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Kotlin合成到数据绑定的转换问题_Android_Android Databinding - Fatal编程技术网

Android 从Kotlin合成到数据绑定的转换问题

Android 从Kotlin合成到数据绑定的转换问题,android,android-databinding,Android,Android Databinding,我目前正在尝试将我的应用程序的布局操作从合成更改为数据绑定 我遵循了谷歌教程,它几乎适用于所有情况,但有一个问题有点难以解决,欢迎提供帮助 这就是我需要帮助的地方: 在性别选择部分,我有3张卡片来选择一个人的性别(男人/女人/怀孕)。Behind是一个值,该值将所选性别保留为Int(0=女性,1=男性),但如果单击怀孕案例,我会打开一个对话框,询问怀孕季度(代码2、3和4)。我的问题是,我没有找到一个适合这种情况的正确组织 有人知道如何使用数据绑定吗?我正在使用TextViews处理卡片,但请

我目前正在尝试将我的应用程序的布局操作从合成更改为数据绑定

我遵循了谷歌教程,它几乎适用于所有情况,但有一个问题有点难以解决,欢迎提供帮助

这就是我需要帮助的地方:

在性别选择部分,我有3张卡片来选择一个人的性别(男人/女人/怀孕)。Behind是一个值,该值将所选性别保留为Int(0=女性,1=男性),但如果单击怀孕案例,我会打开一个对话框,询问怀孕季度(代码2、3和4)。我的问题是,我没有找到一个适合这种情况的正确组织

有人知道如何使用数据绑定吗?我正在使用TextViews处理卡片,但请毫不犹豫地建议其他解决方案

布局XML:

<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运行