我正在使用bignerdranch的可扩展回收站视图。在我的子视图中,我放置了一个编辑文本,用户可以在其中对父视图上显示的问题发表评论。
我的问题是,我希望在编辑文本失去焦点后保存用户输入。(在这种情况下,我有 3 个父母,每个父母都有 1 个 editText)。但是,当我输入编辑文本 1并专注于编辑文本 2而不输入时……编辑文本 2在失去焦点后会占用编辑文本 1 的输入。
我尝试使用文本观察器,并在文本更改后将代码放入其中。但应用程序冻结并在一段时间后停止工作。如果有更好的方法让我相应地保存?
mCatatan是我的编辑文本。
@Override
public void onBindChildViewHolder(final ATPChildViewHolder atpChildViewHolder, int i, Object childObject) {
final ATPChild atpChild = (ATPChild) childObject;
final String text = atpChildViewHolder.mCatatanInput.getText().toString();
if(!text.equals("")) {
atpChild.setDetail(text);
atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
} else {
atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
}
// todo: fixed catatan being saved to another catatan
atpChildViewHolder.mCatatanInput.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
Log.d(TAG, "onFocusChange: ");
atpChild.setDetail(atpChildViewHolder.mCatatanInput.getText().toString());
atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
}
}
});
}