Here is answer to your solution. Its a very poor solution just a hint type but you can change code as according to you
final int LIMIT_FIRST = 10;
final int LIMIT_SECOND = 15;
final EditText et = (EditText) findViewById(R.id.edittext);
et.setSingleLine();
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String stringValue = s.toString().trim();
int stringLength = stringValue.length();
if(stringLength == 0){
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(1000);
et.setFilters(FilterArray);
}else if(stringLength == 1){
if(stringValue.equalsIgnoreCase("1")){
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(LIMIT_FIRST);
et.setFilters(FilterArray);
}
}else if(stringLength == 3){
if(stringValue.equalsIgnoreCase("011")){
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(LIMIT_SECOND);
et.setFilters(FilterArray);
}
}
System.out.println(s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
System.out.println(s);
}
@Override
public void afterTextChanged(Editable s) {
System.out.println(s);
}
});
Let me know if this helps you