2017-02-06 2 views
0

Я хочу, чтобы никто не помещал пространство в текст редактирования, и я сделал это с помощью фильтра ввода, но вот еще одна проблема, с которой я столкнулся, - это когда я нажимаю клавишу пробела два раза, действуя как backspace и удаляя который пользователь уже ввел. Я буду благодарен, если кто-то решит эту проблему. Код: Здесь я установил фильтр ввода в свой editText.Неожиданное поведение пространства в InputFilter

etDrivenByEmail.setFilters(new InputFilter[]{ 
       UtilityOfActivity.spaceNotAllowedInEditText()}); 
    } 

Это мой метод глобального входного фильтра:

public static InputFilter spaceNotAllowedInEditText(){ 

     InputFilter filter = new InputFilter() { 
      public CharSequence filter(CharSequence source, int start, int end, 
             Spanned dest, int dstart, int dend) { 
       for (int i = start; i < end; i++) { 
        if (Character.isWhitespace(source.charAt(i))) { 
         return ""; 
        } 
       } 
       return null; 
      } 
     }; 
     return filter; 
    } 

Это XML для моего EditText:

<EditText 
         android:id="@+id/editDrivenByMailID" 
         style="@style/editTextDefault" 
         android:layout_width="0dp" 
         android:layout_height="wrap_content" 
         android:layout_weight="5" 
         android:hint="@string/email" 
         android:textColor="@color/color_navy_blue" /> 

ответ

1
Please try this code. 

    edittext.addTextChangedListener(new TextWatcher() { 
       @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) { 

        String result = edittext.getText().toString().trim() + s.toString().replaceAll(" ", ""); 
        if (!s.toString().equals(result)) { 
         edittext.setText(result); 
        } 
else{ 
edittext.setSelection(0); 
} 
       } 
      }); 

    It's working fine. 
+0

Но в этом Whn жму пространство это взять меня в начало edittext Я хочу, чтобы мой курсор начинался с edittext. – Champandorid

+0

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

+0

Получение ошибки из памяти ... – Champandorid

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