これはやや一般的な答えであり、将来の視聴者のためのより多くの説明があります。
テキスト変更リスナーを追加する
テキストが変更された後にテキストの長さを検索したり、何か他のことをしたい場合は、テキスト変更リスナーを編集テキストに追加できます。
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
:オーバーライドする3つのメソッドを必要とする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
inを変更しafterTextChanged
ます。
start
:これは、新しいテキストが挿入された場所の開始のインデックスです。
before
:これは古い値です。置換されたのは、以前に選択されたテキストの長さです。これは、同じ値であるcount
の中でbeforeTextChanged
。
count
:これは挿入されたテキストの長さです。これは、同じ値であるafter
の中でbeforeTextChanged
。
afterTextChanged
afterTextChanged(Editable editable)
のようにonTextChanged
、これはすでに変更が行われた後に呼び出されます。ただし、テキストは変更される可能性があります。
editable
:これはの編集可能なテキストですEditText
。ただし、変更する場合は、無限ループに入らないように注意する必要があります。詳細については、ドキュメントを参照してください。