이것은 향후 시청자에 대한 자세한 설명과 함께 약간 더 일반적인 답변입니다.
텍스트가 변경된 리스너 추가
텍스트 길이를 찾거나 텍스트가 변경된 후 다른 작업을 수행하려는 경우 텍스트 변경 리스너를 편집 텍스트에 추가 할 수 있습니다.
EditText editText = (EditText) findViewById(R.id.testEditText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
리스너에는 TextWatcher
,이 필요 beforeTextChanged
하며 onTextChanged
,, 및 세 가지 메소드를 재정의해야합니다 afterTextChanged
.
문자 수
당신의 글자 수를 얻을 수 있습니다 onTextChanged
또는 beforeTextChanged
함께
charSequence.length()
또는 afterTextChanged
와
editable.length()
방법의 의미
매개 변수는 약간 혼동되므로 여기에 약간의 추가 설명이 있습니다.
beforeTextChanged
beforeTextChanged(CharSequence charSequence, int start, int count, int after)
charSequence
: 이것은 보류중인 변경이 이루어지기 전의 텍스트 내용입니다. 변경하지 마십시오.
start
: 새 텍스트를 삽입 할 인덱스입니다. 범위가 선택되면 범위의 시작 색인입니다.
count
: 대체 할 선택된 텍스트의 길이입니다. 아무것도 선택되어 있지 않은 경우 count
가 될 것이다 0
.
after
: 삽입 할 텍스트의 길이입니다.
onTextChanged
onTextChanged(CharSequence charSequence, int start, int before, int count)
charSequence
: 변경 후의 텍스트 내용입니다. 여기에서이 값을 수정하지 마십시오. 수정 editable
에 afterTextChanged
당신이 필요합니다.
start
: 새 텍스트가 삽입 된 위치의 색인입니다.
before
: 이것은 오래된 값입니다. 대체 된 이전에 선택한 텍스트의 길이입니다. 이는에서와 동일한 값 count
입니다 beforeTextChanged
.
count
: 삽입 된 텍스트 길이입니다. 이는에서와 동일한 값 after
입니다 beforeTextChanged
.
afterTextChanged
afterTextChanged(Editable editable)
마찬가지로 onTextChanged
변경이 이미 완료된 후에 호출됩니다. 그러나 이제 텍스트가 수정 될 수 있습니다.
editable
:의 편집 가능한 텍스트입니다 EditText
. 그러나 변경하면 무한 루프에 빠지지 않도록주의해야합니다. 자세한 내용은 설명서 를 참조하십시오.