각 행에 EditText가있는 RecyclerView가 있습니다. 각 EditText에는 행에 대한 정보와 EditText 값을 저장하기 위해 TextWatcher가 첨부 된 객체와 배열의 객체가 있습니다.EditText의 onTextChanged가 행에서 빈 값으로 호출 됨 recycle
내가 겪고있는 문제는 행이 화면을 벗어날 때 재활용되지만, 그 과정에서 onTextChanged는 빈 문자열로 호출되어 빈 문자열이 행의 정보 객체에 저장된다는 의미입니다. 해당 행이 다시로드되면 공백 값이로드되어 이전에 EditText에 있던 내용이 모두 삭제됩니다. 이것은 아주 쓸모없는 기능처럼 보입니다. (내가 알 수있는 한) 사용자는 Recycle Clear를 구분할 방법이 없기 때문에 EditText의 값을 지우고 RecyclerView의 EditTexts를 완전히 쓸모 없게 만듭니다. 텍스트가 없습니다 아무것도하기 전에 빈 경우, 또는 단순히 확인하는 것이에 대처하기 위해
private class EditBoxListener implements TextWatcher {
private int position;
private CharSequence sequence;
private boolean initialCall = true;
public void updatePosition(int _position) {
position = _position;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
System.out.println("TEXT CHANGED TO: " + charSequence.toString());
if (!initialCall) {
int value = -1;
try {
value = Integer.parseInt(charSequence.toString());
} catch (Exception e) {}
if (indicators.size() > 0) {
indicators.get(position).setValue(value);
}
} else {
initialCall = false;
}
}
@Override
public void afterTextChanged(Editable editable) {}
}
그건 아니야 왜냐하면 사용자가 입력 할 수있는 합법적 인 값은 공백 값이기 때문입니다. – JamEngulfer