我有以下问题:
对于我当前的Android应用程序项目,我使用Realm作为数据库,并且每次我的某个特定文本字段更改为赋予textview的值时,我都试图更新字符串值。但是问题是,每当对象的值更改时,文本字段的值就会与先前设置的字符混合,然后又变回来。我更改的项目也位于我的视口中。有任何想法吗? 这是我的代码
布局
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/entry_detail_form_8_til_text_field_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:hintEnabled="true"
app:layout_constraintTop_toBottomOf="@id/entry_detail_form_8_title"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<EditText
android:id="@+id/entry_detail_form_8_et_text_field"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
style="@style/Widget.MaterialComponents.TextInputEditText.OutlinedBox"/>
</com.google.android.material.textfield.TextInputLayout>
和逻辑
holder.etTextArea?.addTextChangedListener(object : TextWatcher{
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
realm.executeTransaction {
holder.fieldObject?.value = p0.toString()
}
}
})
编辑:以下操作不能解决问题:
答案 0 :(得分:0)
通过在RecyclerView的Adapter中禁用autoUpdate修复了该问题,好像我的编辑文本的值与我要用新文本更改的字段有关