Android: Deshabilitar el teclado virtual en todos los EditTexts
Estoy trabajando en un diálogo en Android con algunos EditText
s. He puesto esta línea en el onCreate()
para desactivar el teclado onCreate()
:
Keypad.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
El problema es que funciona sólo cuando aparece el diálogo y no hacer nada. Cuando me muevo al siguiente EditText
, el teclado aparece y no va abajo.
- ¿Cómo puedo poner imágenes en un campo EditText?
- Cómo hacer una sugerencia wrap en un Android EditText?
- Buscar Editar texto como Google Play
- Android RequestFocus () Ineficaz
- Haga que EditText crezca a medida que se llena
¿Alguien tiene una idea de cómo resolver este problema?
- Cómo cambiar el color / apariencia de EditText select handle / anchor?
- androide. Visualización de enfoque automático en el inicio de la actividad
- Obtener código fuente HTML de codificado EditText en Android
- EditText campo es necesario antes de pasar a otra actividad
- Android EditText.setError () produce texto de error invisible
- EditText añadido no es un TextInputEditText. Por favor, cambie a usar esa clase en su lugar
- Poner texto constante dentro de EditText que no debería ser editable - Android
- ¿Cómo puedo obtener los resultados de un AlertDialog?
Cree su propia clase que extienda EditText
y onCheckIsTextEditor()
el onCheckIsTextEditor()
:
public class NoImeEditText extends EditText { public NoImeEditText(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onCheckIsTextEditor() { return false; } }
Si se echa un vistazo a la implementación del método onCheckIsTextEditor () en TextView, se verá así:
@Override public boolean onCheckIsTextEditor() { return mInputType != EditorInfo.TYPE_NULL; }
Esto significa que usted no tiene que subclase, sólo puede:
((EditText) findViewById(R.id.editText1)).setInputType(InputType.TYPE_NULL);
Intenté fijar android: inputType = "ningunos" en el xml de la disposición pero no trabajó para mí, así que lo hice programmatically.
Probar esto..
edittext.setInputType(InputType.TYPE_NULL); if (android.os.Build.VERSION.SDK_INT >= 11) { edittext.setRawInputType(InputType.TYPE_CLASS_TEXT); edittext.setTextIsSelectable(true); }
He estado buscando soluciones a esto todo el día, y me encontré con este enfoque. Lo estoy poniendo aquí porque parece responder a esta pregunta perfectamente.
EditText et = ... // your EditText et.setKeyListener(null) //makes the EditText non-editable so, it acts like a TextView.
No es necesario subclasificar. La principal diferencia entre esto y hacer su EditText no se puede enfocar, es que EditText todavía tiene su propio cursor – puede seleccionar texto, etc Todo lo que hace es suprimir el IME de apareciendo su propio teclado virtual.
Su sido algún tiempo desde este post, pero aquí es un método simple que trabajó para mí: en el xml, en las propiedades de EditText
, hacer: android:focusable="false"
. Ahora el teclado no se abrirá aunque el usuario haga clic en él. Esto es útil si está proporcionando su propio teclado.
Sabes que es demasiado tarde, pero ¿has probado el siguiente ajuste a EditText en tu diseño?
android:inputType="none"
ACTUALIZAR
Utilizar,
editText.setInputType(InputType.TYPE_NULL) editText.setFocusable(false)
Llame a TextView.setShowSoftInputOnFocus(false)
. Este método está documentado desde el nivel 21 de la API, pero ya está allí desde el nivel 16 de la API (sólo está oculto de JavaDoc). Lo utilizo con el API de nivel 16 en un AlertDialog en combinación con dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
.
En API nivel 14, hay un método oculto setSoftInputShownOnFocus()
que parece tener el mismo propósito, pero no he probado eso.
La ventaja sobre InputType.TYPE_NULL
es que se pueden usar todos los tipos de entrada normales (por ejemplo, para introducir la contraseña) y el evento táctil posiciona el cursor en el punto correcto dentro del texto.
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edSearch.getWindowToken(), 0);
Con el fin de deshabilitar ANDROID SOFT INPUT KEYBOARD xml archivo no ayuda en mi caso llamando el método setInputType en el objeto EditText en el archivo java funciona muy bien. Aquí está el código.
EditTextInputObj = (EditText) findViewById(R.id.EditTextInput); EditTextInputObj.setInputType(InputType.TYPE_NULL);
Ponga esto en el método de Oncreate
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Si coloca las textViews en el grupo de vistas, puede hacer que la vista obtenga el foco antes de cualquiera de sus descendientes usando esto:
view.setDescendantFocusability(view.FOCUS_BLOCK_DESCENDANTS);
Por conjunto EditText focusable-> false, el teclado no se abrirá cuando se hace clic
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="false" />
Usted puede hacer eso:
textView.setOnClickListener(null);
Deshabilitará el teclado en textView y el clic no funcionará más.
- La conexión Bluetooth entre Android y Linux (RPi) se pierde en la primera acción de escritura
- ¿Cómo obtener el símbolo de moneda por nombre de moneda?