Android deshabilita el espacio sólo para Edittext

En mi aplicación android necesito deshabilitar la barra espaciadora solamente. Pero no encontré una solución para este problema. Necesito inhabilitar la barra de espacio y cuando el usuario incorpora el espacio no debe trabajar, los caracteres especiales, las letras, los dígitos y todo el otro deben trabajar. Lo que intenté es,

etPass.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.contains(" ")) { etPass.setError("Space is not allowed"); etPass.setText(""); } } @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 } }); 

Pero el problema aquí es una vez que el espacio viene todo el texto está borrando. quite

 etPass.setText(""); 

Esta línea, por lo que en ese momento mensaje de error está mostrando, pero en ese momento el usuario todavía puede escribir espacio. Pero lo que necesito es que el usuario no pueda escribir el espacio.

¿Por qué no piensas en un filtro de caracteres .. He aquí un fragmento de código de ejemplo.

 /* To restrict Space Bar in Keyboard */ 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; } }; input.setFilters(new InputFilter[] { filter }); 

Ella es la solución de trabajo para mí:

 android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" android:inputType="textFilter" 

Añadir en texto de edición en archivo xml

Esta versión apoya la entrada de las sugerencias del teclado con espacios.

 InputFilter filter = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String filtered = ""; for (int i = start; i < end; i++) { char character = source.charAt(i); if (!Character.isWhitespace(character)) { filtered += character; } } return filtered; } }; input.setFilters(new InputFilter[] { filter }); 
 EditText yourEditText = (EditText) findViewById(R.id.yourEditText); yourEditText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence cs, int start, int end, Spanned spanned, int dStart, int dEnd) { // TODO Auto-generated method stub if(cs.equals("")){ // for backspace return cs; } if(cs.toString().matches("[a-zA-Z]+")){ // here no space character return cs; } return ""; } } }); 

Para deshabilitar el uso del espacio

 public boolean onKeyDown(int keyCode, KeyEvent event) { if (editclicked) { if (keyCode == KeyEvent.KEYCODE_SPACE) { return false } } else { super.onKeyDown(keyCode, event); } } 

Simplemente reemplace esto en su código y debería funcionar perfectamente,

 etPass.setText(etPass.getText().toString().replaceAll(" ","")); 

Prueba esto

Usar android:digits no incluyen "" (espacio en él)

 <EditText android:inputType="number" android:digits="0123456789.abcdefghijklmnl....."// write character that you want to allow /> 

En lugar de etPass.setText(""); Sólo hay que eliminar el espacio de los datos de EditText .

 etPass.setText(etPass.getText().toString().trim()); etPass.setSelection(autoComplete.getText().length()); 

Por lo que su condición IF será la siguiente:

 if(str.length() > 0 && str.contains(" ")) { etPass.setError("Space is not allowed"); etPass.setText(etPass.getText().toString().trim()); etPass.setSelection(etPass.getText().length()); } 
  • EditText en ListView es actualizado por onTextChanged al desplazarse
  • Make editText perder el foco en la parte posterior de la prensa
  • Cómo restringir los caracteres especiales de un campo Android EditText?
  • Recurso no encontrado Excepción
  • ¿Cómo eliminar a EditText drawable padding?
  • Cambiar texto editar la fuente de notificación de error en android
  • Advertencia en EditText
  • Android editText: detecta cuando el usuario deja de editar
  • Accesibilidad de Android: ¿Cómo cambio el texto leído en voz alta para una Vista de Edición de Texto
  • EditText mostrando números con 2 decimales en todo momento
  • ¿Cómo cambia el color del subrayado de Edittext en 4.0+?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.