Mostrar teclado suave para el diálogo
Estoy mostrando un diálogo con una vista edittext. Sin embargo, el teclado se abrirá sólo si el usuario pulsa dentro de la vista de edición. Así que traté de llamar a un InputMethodManager con el código siguiente.
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(dialogField,0);
El cuadro de diálogo es el campo de entrada. Sin embargo, cuando exactamente se supone que debo hacer esto? Lo probé en el método onStart () del diálogo, pero no pasa nada. También intenté solicitar el foco para el cuadro de diálogo antes, pero eso no cambia nada.
- Android ViewPager muestra el teclado virtual en el lugar equivocado
- Disposición POPUP del teclado suave
- Salida de un carácter por dos teclas en el teclado de Android
- Android - Comma como separador decimal en Teclado Numérico
- Cómo ocultar el teclado predeterminado de ListViewAdapter en android
También intenté este código
dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange (View v, boolean hasFocus) { if (hasFocus) { Main.log("here"); dialogInput.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); /* InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(dialogField,0); */ } } });
En ambas versiones. Pero ningún teclado suave quisiera aparecer. El Main.log es sólo un registro, que me muestra que la función es realmente llamada. Y sí, se llama.
Podría obtener el teclado con el indicador SHOW_FORCED antes de que se abra el cuadro de diálogo. Pero entonces no se cerrará en la salida. Y sólo puedo hacer eso ANTES de mostrar el diálogo. Dentro de cualquier callback no funciona tampoco.
- Webview no cambia el tamaño cuando aparece el teclado
- Implementaciones de Emoji (Vista Emoticon) / Layouts de Teclado
- Mostrar el teclado para edittext cuando se inicia el fragmento
- Borrar enfoque EditText cuando se pulsa el botón Atrás cuando se muestra el teclado virtual
- cómo evitar el teclado suave que muestra auto correcta sugerencia?
- Android Utilice el botón Listo en Teclado para hacer clic en el botón
- Cómo hacer que el fragmento honre el modo de entrada suave de la actividad
- Cómo deshabilitar el teclado virtual en WebView
Pregunta impresionante, yo estaba tratando de hacer eso también y encontró una solución.
Utilizando la clase de constructor de diálogo AlertDialog.Builder
tendrá que invocar el diálogo de la siguiente manera:
AlertDialog.Builder builder = new AlertDialog.Builder(); AlertDialog dialog; builder.set... dialog = builder.create(); dialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); dialog.show();
Esto funcionó bien para mí.
Nota: debe import android.view.WindowManager.LayoutParams;
Para el valor constante allí.
Prueba esto
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edttxt.getWindowToken(), 0);
Para cerrar
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edttxt.getWindowToken(), 0);
Parece imposible.
Así que hice una nueva actividad en lugar del diálogo y dejar que el usuario editar allí. Tenga en cuenta que en las actividades puede establecer el modo de teclado en el archivo de manifiesto. Lo configuré para mostrar, cuando se abre la actividad.
También tenga en cuenta que las pruebas en el emulador con teclas duras no abrirán el teclado para SHOW_IMPLICIT o el indicador 0.
- Cómo hacer parte del texto Negrita en android en tiempo de ejecución?
- Android Volley doble puesto cuando tienen lenta solicitud