我正在尝试检索在EditText
视图中按下了哪个键,并将其设置为同一活动中TextView
的文本。例如,如果按下的最后一个键是字母' t,那么我想要' t'显示在TextView
(而不是整个字符序列)中。
我尝试了以下内容:
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) {}
});
我猜使用任何String方法都会导致崩溃,即使length()
也是如此。我做错了什么?
答案 0 :(得分:2)
在onTextChanged()
的回调中使用以下代码 String text = charSequence.toString();
if (text.length() >0) {
Character character = text.charAt(text.length()-1);
Character character1 = character;
tv.setText(character1.toString());
} else {
// if you want to remove last character too then setText(""");
}
希望有所帮助。