virtuales - Impedir que el teclado se apague con el botón de retroceso de Android presione
desactivar botones fisicos android sin root (1)
crear un EditText personalizado como seguir con una interfaz:
public class CustomEditText extends EditText {
public void setHandleDismissingKeyboard(
handleDismissingKeyboard handleDismissingKeyboard) {
this.handleDismissingKeyboard = handleDismissingKeyboard;
}
private handleDismissingKeyboard handleDismissingKeyboard;
public interface handleDismissingKeyboard {
public void dismissKeyboard();
}
@SuppressLint("NewApi")
public CustomEditText(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_UP) {
handleDismissingKeyboard.dismissKeyboard();
return true;
}
return super.dispatchKeyEvent(event);
}
luego, en su actividad, cree inicialice su CustomEditText y use:
customEditText.setHandleDismissingKeyboard(this);
A continuación, implemente el método de anulación y clase y ponga su código en ese
Para obtener más información sobre mi respuesta, todo lo que necesita es onKeyPreIme
, puede anular eso en su clase EditText (como lo publico para usted) para manejar todas las claves en eso, como la tecla Atrás o cualquier otra tecla del teclado, coloco una interfaz interna clase personalizada para devolver la llamada de esta clase a cada actividad o clase que desee, también puede hacerlo con un método estático, y como quiera evitar que se descarte el teclado, puede devolver true
en eso.
para usar CustomEditText
puede usar xml o en java, definirlo e inicializarlo como otro widget (Button, TextView, ...), y solo es necesario definirlo en su xml como:
<yourPackage.CustomEditText ..... />
Esta pregunta ya tiene una respuesta aquí:
- Cerrar / ocultar el teclado suave de Android 81 respuestas
Tengo una actividad con un edittext. Cuando llega la actividad, siempre estoy enfocando ese Edittext. Hice el softkeyboard siempre visible dando
android:windowSoftInputMode="stateAlwaysVisible"
en el manifiesto. Estoy haciendo la funcionalidad en la pulsación del botón hecho de la softkeyboard. En realidad, mi necesidad es que el softkeyboard siempre esté presente cuando el usuario está en esta actividad. Ahora deshabilité la tecla de retroceso presionando, anulando y no haciendo nada.
@Override
public void onBackPressed() {
// Do nothing
}
pero el softkeyboard se despide en la prensa trasera. cómo deshacerse de esto. Intenté que se impidiera el cierre del teclado suave, pero aún en la parte posterior, presione el teclado para descartar. Pero regresa presionando nuevamente el botón Atrás. Mi necesidad es la presión de retroceso, no debe descartar el teclado. Cualquier ayuda será apreciada.