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,

  • Disposición personalizada de la interfaz de usuario de Android ProgressBar
  • ¿Cuál es la convención para nombres de paquetes java sin una asociación de dominio?
  • Android AudioRecord clase - proceso de mic audio en vivo rápidamente, configurar la función de devolución de llamada
  • Cómo detener el teléfono de la carga a través de USB mediante programación
  • Cómo establecer texto en un EditarTexto
  • Android - Uso correcto de invalidateOptionsMenu ()
  •  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.

  • Ocultar el campo Año en Android DatePicker?
  • Establecer texto y obtener texto del portapapeles
  • Cómo escalar una imagen en un ImageView para que se "ajuste"
  • Leer correos electrónicos de Gmail con SDK de Android
  • Manejo de evento de apagado de teléfono en android
  • Tamaño grande del icono de la notificación del empuje de GCM
  • 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.