EditText
ビュー内でどのキーが押されたかを取得し、同じアクティビティでTextView
のテキストとして設定しようとしています。たとえば、押された最後のキーが文字 't'だった場合、 't'はTextView
に表示されます(文字シーケンス全体ではありません)。文字列メソッドを呼び出すと、TextWatcher内でアプリケーションがクラッシュする
私は次のことを試してみました:
phoneInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
tracker.setText(s.charAt(start));
}
@Override
public void afterTextChanged(Editable s) {
}
});
これは、クラッシュが生じました。私は確信していませんが、start
は最後のキーが押されたときに追加された文字のインデックスですので、TextView
は最後に入力した文字をEditText
に表示する必要がありますか?
私もこれを試してみました:
phoneInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String sequence = s.toString();
tracker.setText(sequence.charAt(sequence.length() - 1));
}
@Override
public void afterTextChanged(Editable s) {}
});
私は任意の文字列メソッドの使用がクラッシュ、でもlength()
を引き起こしていると思います。私は間違って何をしていますか?
@IntelliJAmiya Nope!私のために働かなかった。 –
私の記事を参照してください – Raja