Wil*_*aan 30 android android-layout android-edittext
用户必须输入他的手机号码,手机号码必须是10个号码,我曾经TextWatcher这样做,就像这样
et_mobile.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (et_mobile.getText().toString().length() > 10) {
et_mobile.setText(et_mobile.getText().toString()
.subSequence(0, 10));
tv_mobileError.setText("Just 10 Number");
}else{
tv_mobileError.setText("*");
}
}
});
Run Code Online (Sandbox Code Playgroud)
但问题是当用户输入第11个数字时,edittext的光标从文本的开头开始,我希望它仍然在最后,怎么样?
jen*_*nzz 108
你有两个选择,两个都应该工作:
一个)
editText.setText("Your text");
editText.setSelection(editText.getText().length());
Run Code Online (Sandbox Code Playgroud)
b)
editText.setText("");
editText.append("Your text");
Run Code Online (Sandbox Code Playgroud)
/**
* Set pointer to end of text in edittext when user clicks Next on KeyBoard.
*/
View.OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
((EditText) view).setSelection(((EditText) view).getText().length());
}
}
};
mEditFirstName.setOnFocusChangeListener(onFocusChangeListener);
mEditLastName.setOnFocusChangeListener(onFocusChangeListener);
Run Code Online (Sandbox Code Playgroud)
它对我很有用!
| 归档时间: |
|
| 查看次数: |
41555 次 |
| 最近记录: |