Вы можете использовать TextWatcher для этой работы. Короткий фрагмент кода:
editTextA.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// implement your logic here
// e.g. Set cursor to the end of another Textfield:
if (s.toString().length() > 2){
int position = editTextB.length();
editTextB.setSelection(position);
}
}
@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
}
});
Для вашей задачи, каждый EditText нужен свой TextWatcher (в том числе логики specifig).
UPDATE:
Короткий (непроверенные) идея, как переключаться EditText при удалении:
private boolean isEditTextVirgin;
isEditTextVirgin = true;
editTextB.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// Check if the TextView is filled before editing
// if yes then save this information for later
if (s.toString().length() > 0){
isEditTextVirgin = false;
}
}
@Override
public void afterTextChanged(Editable s) {
// Check if the EditText is empty after a edit and if it was filled before
// if both yes then jump the the previous EditText
if (s.toString().length() == 0 && isEditTextVirgin == false){
int position = editTextA.length();
editTextA.setSelection(position);
// if you want you can reset your variable
// isEditTextVirgin = true;
}
}
});
Вы сохраняете статус (если EditText когда-либо была заполнена) в переменной-члена.
Показать код, который вы работаете в настоящее время, в том числе макет пожалуйста. –
Используйте TextWatcher, вы также можете проверить счетное решение здесь http://stackoverflow.com/questions/4310525/counting-chars-in-edittext-changed-listener –
Спасибо. И как лучше переключаться с одного на другой edittext? – Androider