Hopefully this might help. I tried to use this in my projects.
public class MTextWatcher implements TextWatcher, View.OnKeyListener {
private int prevLen;
public MTextWatcher(int prevLen) {
this.prevLen = prevLen;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
//do something if you need
prevLen = s.toString().length();
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL && prevLen == 0){
// here you can trap the delete key pressed on empty edit text
}
return false;
}
}
next you can attach this listener with edit text like this
MTextWatcher watcher = new MTextWatcher(edittext.getText().toString().length());
edittext.addTextChangedListener(watcher);
edittext.setOnKeyListener(watcher);