使用android双向数据绑定与复选框

时间:2018-03-06 06:15:29

标签: android viewmodel android-mvvm

我正在尝试在片段中使用机器人双向databindingcheckBox 我在viewPager中有多个片段,其中包含自定义FragmentStatePagerAdapter,并且在viewModel中有一个fragment
我有一个包含以下代码的复选框:

<CheckBox
            android:id="@+id/checkbox_accept_rules"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="@={viewmodel.isAccept}"
            android:gravity="right"
            android:text="text..." />

在viewModel中:

private final ObservableBoolean isAccept = new ObservableBoolean(false);

当我转到上一个fragment并返回第一个时,checkBox不再被选中,复选框的颜色为真,但检查图标不存在! 以前有没有这个问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

查看传呼机的片段比通常的片段具有独特的生命周期。如果您有三个片段A-> B-> C,然后从C滑动B,则片段A将被销毁。您可以通过覆盖方法{{1 }}在片段A中。再次滑动到A时,它将重新创建,并且所有值将再次初始化。这就是未选中复选框值的原因。请尝试将复选框的值保存在sharedPreference中,以便每当它重新创建时当您的viewpager将被销毁或它的容器活动被销毁时,从sharedPreference和remeber中获取值以清除sharedPrefence值。