Đây là một câu trả lời chung chung hơn một chút với nhiều lời giải thích hơn cho người xem trong tương lai.
Thêm một văn bản thay đổi người nghe
Nếu bạn muốn tìm độ dài văn bản hoặc làm một cái gì đó khác sau khi văn bản đã được thay đổi, bạn có thể thêm một trình nghe thay đổi văn bản vào văn bản chỉnh sửa của bạn.
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) {
}
});
Người nghe cần có một TextWatcher
, mà đòi hỏi phải có ba phương pháp để được ghi đè: beforeTextChanged
, onTextChanged
, và afterTextChanged
.
Đếm các ký tự
Bạn có thể nhận được số lượng nhân vật trong onTextChanged
hoặc beforeTextChanged
với
charSequence.length()
hoặc trong afterTextChanged
với
editable.length()
Ý nghĩa của các phương pháp
Các thông số hơi khó hiểu nên đây là một lời giải thích thêm.
trướcText Thay đổi
beforeTextChanged(CharSequence charSequence, int start, int count, int after)
charSequence
: Đây là nội dung văn bản trước khi thay đổi chờ xử lý được thực hiện. Bạn không nên cố gắng thay đổi nó.
start
: Đây là chỉ mục nơi văn bản mới sẽ được chèn. Nếu một phạm vi được chọn, thì đó là chỉ mục bắt đầu của phạm vi.
count
: Đây là độ dài của văn bản được chọn sẽ được thay thế. Nếu không có gì được chọn thì count
sẽ được 0
.
after
: đây là chiều dài của văn bản được chèn.
onText Thay đổi
onTextChanged(CharSequence charSequence, int start, int before, int count)
charSequence
: Đây là nội dung văn bản sau khi thay đổi được thực hiện. Bạn không nên cố gắng sửa đổi giá trị này ở đây. Sửa đổi editable
trong afterTextChanged
nếu bạn cần.
start
: Đây là chỉ mục bắt đầu nơi văn bản mới được chèn.
before
: Đây là giá trị cũ. Đó là độ dài của văn bản được chọn trước đó đã được thay thế. Đây là giá trị tương tự như count
trong beforeTextChanged
.
count
: Đây là độ dài của văn bản đã được chèn. Đây là giá trị tương tự như after
trong beforeTextChanged
.
afterText Thay đổi
afterTextChanged(Editable editable)
Giống như onTextChanged
, điều này được gọi sau khi thay đổi đã được thực hiện. Tuy nhiên, bây giờ văn bản có thể được sửa đổi.
editable
: Đây là văn bản có thể chỉnh sửa của EditText
. Tuy nhiên, nếu bạn thay đổi nó, bạn phải cẩn thận để không đi vào một vòng lặp vô hạn. Xem tài liệu để biết thêm chi tiết.