当点击EditText,通过requestFocus()方法获取焦点时,如果EditText是先填充内容后获取焦点的话,插入符位置是在文本的最后。如果是先获取焦点,然后再填充内容,焦点的位置是在文本的最前面,此时应通过setSelection()方法设置插入符的位置。
TextWatcher
可以对EditText插入的文本进行实时的监听判断。
TextWatcher key_watcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { //s:文本框中输入的所有文字 start:添加文字的位置 before:一直是0 count:此次添加文字的总个数
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { //s:之前的文字内容 start:添加文字的位置 count:一直是0 after:此次添加的文字总数(并不是输入框中的文字总数)
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) { //s:输入框中的所有文字
// TODO Auto-generated method stub
}
};
通过addTextChangedListener()方法添加TextWatcher。