【发布时间】:2017-06-30 08:27:29
【问题描述】:
背景:我正在使用io.realm:android-adapters:2.0.0 来显示项目列表。每行包含三个TextViews 和两个EditText 字段。这三个TextViews 文本是从realm 模式设置的。我正在为EditText 使用两种方式的数据绑定,例如:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:text="@={Conversion.toString(offline.inputUI)}" />
这个offline 是扩展RealmObject 的架构,其中两个@Ignore 字段对应于两个EditText。当用户键入时,值会反映在offline 模型中。
问题:当我滚动到屏幕上方时,EditText 的值会丢失。如果在屏幕上一次可见四行,并且用户输入 EditText 并滚动查看接下来的四行,并且如果重新访问前四行,则所有 EditText 的值都将丢失。这是因为零复制设计,我理解这一点。但是,如果我从EditText 中删除@Ignore,则会引发一个异常,您无法在...等之外执行事务。
所需的输出如何避免EditText 的值在滚动时消失并利用领域零复制设计。此外,在用户键入时或在用户离开EditText 之后,将EditText 的值实时保存在领域中。 真的有可能吗? .我是否需要改变我目前的方法。如果我在焦点从EditText 更改时使用频繁的写入事务,它会耗尽电池吗?
【问题讨论】:
标签: android android-edittext android-recyclerview realm realm-java