This question already has an answer here:
- Place cursor at the end of text in EditText 23 answers
The user has to enter his mobile number, the mobile number has to be 10 numbers, I used TextWatcher
to do that, like this
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("*");
}
}
});
but the problem is when the user enters the 11th number, the cursor of the edittext starts from the beginning of the text, I want it to still at the end, how?
While jenzz anwser works for the simplest case. It doesn't if your moving the cursor before editing your text because as soon as the second letter is typed it will be moved to the end of the EditText.
Prefer using this solution:
It work good for me!
You have two options, both should work:
a)
b)