Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Abrir el teclado virtual programáticamente

Tengo una actividad sin los widgets del niño para él y el archivo xml correspondiente es,

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myLayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="true" > </LinearLayout> 

Y quiero abrir el teclado suave programmatically mientras que la actividad consigue start.and qué he intentado hasta ahora es,

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (inputMethodManager != null) { inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); } 

Dame alguna guía.

  • Cambiar el teclado predeterminado de android utilizando ADB o código java
  • El teclado se abre como pantalla completa en modo horizontal
  • Cómo ocultar el teclado virtual en Android después de hacer clic fuera de EditText?
  • Cómo mover la disposición para arriba cuando el teclado suave se muestra android
  • Cómo ocultar el teclado virtual en el tacto de una ruleta
  • Cómo mantener una barra de navegación inferior de ser empujado hacia arriba en el teclado mostrado
  • Cambiar el perfil del teclado mediante programación
  • Teclado numérico personalizado de Android
  • 14 Solutions collect form web for “Abrir el teclado virtual programáticamente”

    He utilizado las siguientes líneas para mostrar el teclado virtual manualmente dentro del evento onclick y el teclado es visible.

     InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInputFromWindow( linearLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); 

    Pero todavía no puedo abrir esto mientras que la actividad se abre, así que es cualquier solución para esto.

    En su archivo de manifiesto, intente agregar lo siguiente a la <activity> que desea mostrar el teclado cuando se inicia la actividad:

    android:windowSoftInputMode="stateVisible"

    Esto debería hacer que el teclado se vuelva visible cuando se inicia la actividad.

    Para obtener más opciones, consulte la documentación .

    Siga por favor el código abajo. Estoy seguro de que su problema será resuelto.

     if (imm != null){ imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); } 

    Esto es obras

     <activity ... android:windowSoftInputMode="stateVisible" > </activity> 

    o

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

    Todo lo que necesitaba era exponer el teclado, en un momento muy preciso. Esto funcionó para mí! Gracias Benites.

      private Handler mHandler= new Handler(); 

    Y en el momento preciso:

      mHandler.post( new Runnable() { public void run() { InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInputFromWindow(yourEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); yourEditText.requestFocus(); } }); 

    He utilizado las siguientes líneas para mostrar el teclado suave manualmente dentro del evento onclick.

     public void showKeyboard(final EmojiconEditText ettext){ ettext.requestFocus(); ettext.postDelayed(new Runnable(){ @Override public void run(){ InputMethodManager keyboard=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.showSoftInput(ettext,0); } } ,200); } 

    Poner eso en onResume método:

     findViewById(R.id.root_view_of_your_activity_layout).post( new Runnable() { public void run() { InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInputFromWindow(yourEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); yourEditText.requestFocus(); } }); 

    El runnable es necesario porque cuando el sistema operativo dispara el método onResume no puede estar seguro de que todas las vistas donde dibujar, por lo que el método de post llamado desde su diseño raíz hace que espere hasta que cada vista está lista.

    Parece que esto está funcionando

      protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_patientid); editText = (EditText)findViewById(R.id.selectPatient); //editText.requestFocus(); //works without that } @Override protected void onResume() { findViewById(R.id.selectPatient).postDelayed( new Runnable() { public void run() { editText.requestFocus(); InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(editText,InputMethodManager.SHOW_IMPLICIT); } },100); super.onResume(); } 

    Parece que esto funciona mejor: en manifiesto:

     <application> <activity android:name="com.doodkin.myapp.ReportActivity" android:label="@string/title_activity_report" android:screenOrientation="sensor" android:windowSoftInputMode="stateHidden" > // add this or stateVisible </activity> </application> 

    Parece que el trabajo de manifiesto en android 4.2.2 pero no funciona en android 4.0.3

    He utilizado como esto para mostrar el soft keyboard programatically y esto es trabajado para mí para evitar el redimensionamiento automático de la pantalla mientras se inicia el teclado.

    En manifiesto:

     <activity android:name="XXXActivity" android:windowSoftInputMode="adjustPan"> </activity> 

    En XXXTelección:

     EditText et = (EditText))findViewById(R.id.edit_text); Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInputFromWindow(et.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); } }; timer.schedule(task, 200); 

    Supongo que esto ahorrará tiempo a otros para buscar este problema.

    In onCreate el método de actividad o onActivityCreated de un fragmento

     .... view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { view.removeOnPreDrawListener(this); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); // !Pay attention to return `true` // Chet Haase told to return true; } }); 
     InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); 

    Similar a la respuesta de @ ShimonDoodkin esto es lo que hice en un fragmento.

    https://stackoverflow.com/a/29229865/2413303

    Ya hay demasiadas respuestas pero nada funcionó para mí aparte de esto

     inputMethodManager.showSoftInput(emailET,InputMethodManager.SHOW_FORCED); 

    Utilicé showSoftInput con SHOW_FORCED

    Y mi actividad ha

      android:windowSoftInputMode="stateVisible|adjustResize" 

    Espero que esto ayude a alguien

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 

    Utilice el código anterior en onResume () para abrir Soft Keyboard

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.