Normalmente, desea la máxima compatibilidad con EditText
el comportamiento normal.
Por lo que debe no utilizar android:focusable="false"
como, sí, la vista no sea más enfocable, que se ve mal. El elemento de diseño de fondo ya no mostrará su estado "presionado", por ejemplo.
Lo que debería hacer en su lugar es lo siguiente:
myEditText.setInputType(InputType.TYPE_NULL);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
}
});
Al establecer el tipo de entrada en TYPE_NULL
, evita que aparezca el teclado del software.
Al configurar OnClickListener
y OnFocusChangeListener
, se asegura de que su cuadro de diálogo siempre se abra cuando el usuario haga clic en el EditText
campo, tanto cuando se enfoque (primer clic) como en los clics posteriores.
Solo configurar android:inputType="none"
o setInputType(InputType.TYPE_NULL)
no siempre es suficiente. Para algunos dispositivos, también debe configurar android:editable="false"
XML, aunque está obsoleto. Si ya no funciona, simplemente se ignorará (como todos los atributos XML que no son compatibles).