temas teclado samsung poner para numerico google gboard descargar configurar como android

android - poner - teclado samsung



Forzar la apertura del teclado suave (10)

Intento forzar la apertura del Teclado suave en una Actividad y tomar todo lo que se ingresa, ya que quiero manejar la entrada yo mismo, no tengo un EditarTexto. Actualmente lo he intentado pero no funciona. Me gustaría que el Soft Keyboard se abra debajo de mAnswerTextView (Nota: es un TextView no EditText).

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // only will trigger it if no physical keyboard is open mgr.showSoftInput(mAnswerTextView, InputMethodManager.SHOW_IMPLICIT);

  1. ¿Cómo forzar el teclado suave abierto
  2. ¿Cómo respondo todo lo que se ingresa para poder manejar cada personaje? Me gustaría eliminar a cada personaje del Teclado suave después de haberlo manejado. es decir, el usuario no debería poder ingresar palabras enteras en el Teclado Suave.

Algunas veces las otras respuestas no funcionarán.
Aquí hay otra manera ...

Obligará al teclado a mostrar cuándo comienza la actividad escuchando el foco de la ventana. onWindowFocusChanged() borrará y solicitará el enfoque de EditText, luego establecerá el modo de entrada suave como visible y configurará la selección para el texto en el cuadro. Esto siempre debería funcionar si lo llamas desde la actividad.

@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { mEditText.clearFocus(); mEditText.requestFocus(); getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); mEditText.setSelection(mEditText.getText().toString().length()); } }

Es posible que también necesites

mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mEditText, InputMethodManager.SHOW_IMPLICIT); } } });

Editar: También he visto que el teclado no se abre dentro de fragmentos anidados, ten cuidado con ese tipo de situaciones.


He probado y esto está funcionando:

... // para mostrar el teclado suave

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

// para ocultarlo, llame de nuevo al método

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);


Para forzar que se abra el teclado, utilicé

this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

funcionó para mí.


Probablemente necesites tener un área de texto editable de algún tipo para enfocar. Sin embargo, es probable que puedas tener un fondo invisible o transparente sin cursor. Es posible que necesite juguetear con las configuraciones de capacidad de enfoque para la vista.

Use un TextWatcher para buscar ediciones en EditText con addTextChangedListener , o si necesita un gancho de nivel inferior, configure el oyente de claves de la vista de texto con su método setOnKeyListener (). Vea la documentación de KeyListener .

Use esta llamada para forzar el teclado suave abierto:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)) .showSoftInput(myEditText, InputMethodManager.SHOW_FORCED);

y este para cerrarlo:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

tenga en cuenta que esto realmente no es recomendable, forzar el teclado abierto es algo complicado. ¿Cuál es su caso de uso que realmente requiere que el usuario tome una entrada sin un cuadro de edición normal y requiere que el usuario ingrese la información clave por clave sin repetirla?


Simplemente, usar agregar 2 líneas funcionará como un encanto:

Si usas XML

android:focusable="true" android:focusableInTouchMode="true"

Else en Java:

view.setFocusableInTouchMode(true); view.requestFocus();


Tristemente, por mucho que me hubiera gustado votar una de las respuestas, ninguna me funcionó. Parece que la solución es esperar a que se complete la fase de diseño. En el siguiente código, observe cómo compruebo si el método showKeyboard devuelve TRUE, y es entonces cuando showKeyboard el oyente de diseño global. Sin hacer esto, fue al azar. Ahora parece funcionar perfectamente.

Debes hacer lo siguiente idealmente en onResume()

@Override public void onResume() { super.onResume(); ViewTreeObserver vto = txtTaskTitle.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (txtTaskTitle.requestFocus()) { if (showKeyboard(getContext(), txtTaskTitle)) { txtTaskTitle.getViewTreeObserver().removeOnGlobalLayoutListener(this); } } } }); } public static boolean showKeyboard(Context context, EditText target) { if (context == null || target == null) { return false; } InputMethodManager imm = getInputMethodManager(context); ((InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(target, InputMethodManager.SHOW_FORCED); boolean didShowKeyboard = imm.showSoftInput(target, InputMethodManager.SHOW_FORCED); if (!didShowKeyboard) { didShowKeyboard = ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(target, InputMethodManager.SHOW_FORCED); } return didShowKeyboard; }


intente esto para forzar el teclado suave abierto:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

entonces puedes usar este código para cerrar el teclado:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(_pay_box_helper.getWindowToken(), 0);


si quieres controlar el teclado suave dentro de la actividad, utiliza este código:

//create soft keyboard object InputMethodManager imm = (InputMethodManager)this.getSystemService(INPUT_METHOD_SERVICE); //1.USE your_view.setFocusableInTouchMode(true); //Enable touch soft keyboard to this view //or your_view.setFocusable(true); //Enable keyboard to this view imm.showInputMethod(your_view, InputMethodManager.SHOW_IMPLICIT); //2.USE show keyboard if is hidden or hide if it is shown imm.toggleSoftInputFromWindow(your_view.getWindowToken(),InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY); //or imm.toggleSoftInputFromWindow(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY); //3.USE (you cannot control imm) this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); //4.USE (with Dialog) Dialog d = new Dialog(this, android.R.style.Theme_Panel); d.getWindow().setTitle(null); d.setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); d.setOnKeyListener(keyListener); d.setCanceledOnTouchOutside(true); d.setCancelable(true); d.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); d.show(); //to hide keyboard call: d.dismiss(); //if you want get soft keyboard visibility call: d.isShowing();


Trabajando muy bien .........

edt_searchfilter_searchtext.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus){ edt_searchfilter_searchtext.post(new Runnable() { @Override public void run() { InputMethodManager imm = (InputMethodManager) getFragmentActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(edt_searchfilter_searchtext, InputMethodManager.SHOW_IMPLICIT); } }); } } });

Llamada debajo de la línea cuando quieres abrir el teclado

edt_searchfilter_searchtext.requestFocus();


if(search.getText().toString().trim().isEmpty()) { InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(search.getWindowToken(), 0); }