2014-02-03 2 views
1

У меня есть настроенный класс EditText. Что происходит, это проверка уже для поля, проверка его длины и выполнение обрезки.Проверьте пустое место при нажатии в EditText

Но приложение сбой, потому что можно щелкнуть в поле и вставить данные после 1 пробела.

Как я могу проверить, нажав, этот пользователь не может записать свои данные? Если он записывает данные с одного места, приложение выходит из строя, и я получаю следующее исключение.

java.lang.IllegalArgumentException: Start position must be less than the actual text length 

Заранее спасибо.

+0

Можете ли вы разместить код, где произошла ошибка? – GhostDerfel

ответ

1

Либо вы можете обрезать, но помните, что это обыкновение ограничивать, чтобы войти белый пробелы от пользователя. Если вы хотите ограничить пробелы, то вам нужно добавить filter для вашего edit text. Добавление filter позволит вам ограничить все, что вы хотите избежать.

P.S - Проверка добавления фильтра на данной ссылке How do I use InputFilter to limit characters in an EditText in Android?

+0

Арфин, спасибо ... У меня уже есть маска для этого. Как создать этот фильтр? –

+0

перейдите по этой ссылке http://stackoverflow.com/questions/3349121/how-do-i-use-inputfilter-to-limit-characters-in-edittext-in-android –

0

обрезать строку, которую вы получаете из текста редактирования.

String str=edtext.getText().toString().trim(); 


if(str!=null && !str.equalsIgnoreCase(""))) 
{ 
//perform your operations. 
} 
else 
{ 
//give error message. 
} 
+0

Забыл сказать, но я уже делаю эту проверку. конечная INT число = Integer.parseInt (formNumber.getTextField() \t \t \t \t \t \t .getText() ToString() обрезать()..); –

+0

cn вы публикуете код. –

0

Получить редактировать текст первого по этому пути:

EditText name=(EditText) findViewById(R.id.txt); 
String txtEdit=txt.getEditableText().toString(); 

затем проверить проверки длины текста по:

if(txtEdit.length() == 0) { 

       //your code for what you want to do. 

}    
1

добавить «addTextChangedListener» к вашему EditText, а затем OnTextChanged вы можете проверить для проверки. Например,

txtEdit.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
      String str = s.toString(); 
      if(str.length() > 0 && str.startsWith(" ")){ 
       Log.v("","Cannot begin with space"); 
       txtEdit.setText(""); 
      }else{ 
       Log.v("","Doesn't contain space, good to go!"); 
      } 
     } 

     @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 

     } 
    }); 
+0

Atul, проблема в том, что текст не изменился. Приложение сбой, когда пользователь нажимает и оставляет поле в поле. –

+0

@ Leonardo, не могли бы вы вставить часть своего кода, что поможет лучше понять проблему? –

Смежные вопросы