Saltar al contenido

Ocultar / Mostrar programáticamente el teclado en pantalla de Android

Solución:

ACTUALIZACIÓN 2

@Override
    protected void onResume() {
        super.onResume();
        mUserNameEdit.requestFocus();

        mUserNameEdit.postDelayed(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                InputMethodManager keyboard = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
                keyboard.showSoftInput(mUserNameEdit, 0);
            }
        },200); //use 300 to make it run when coming back from lock screen
    }

Intenté mucho y encontré una solución … cada vez que comienza una nueva actividad, el teclado no se puede abrir, pero podemos usar Ejecutable en En resumen y está funcionando bien, así que pruebe este código y verifique …

ACTUALIZACIÓN 1

agregue esta línea en su AppLogin.java

mUserNameEdit.requestFocus();

y esta linea en tu AppList.java

listview.requestFocus()'

después de esto, verifique su aplicación si no está funcionando, luego agregue esta línea en su AndroidManifest.xml expediente

<activity android:name=".AppLogin" android:configChanges="keyboardHidden|orientation"></activity>
<activity android:name=".AppList" android:configChanges="keyboard|orientation"></activity>

RESPUESTA ORIGINAL

 InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);

para ocultar el teclado

 imm.hideSoftInputFromWindow(ed.getWindowToken(), 0); 

para mostrar el teclado

 imm.showSoftInput(ed, 0);

para centrarse en EditText

 ed.requestFocus();

donde ed es EditText

Agregando esto a su código android:focusableInTouchMode="true" se asegurará de que su teclado no aparezca en el inicio de su cuadro de edición de texto. Desea agregar esta línea a su diseño lineal que contiene EditTextBox. Deberías poder jugar con esto para resolver ambos problemas. He probado esto. Solución simple.

es decir: en su archivo app_list_view.xml

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:focusableInTouchMode="true">
    <EditText 
        android:id="@+id/filter_edittext"       
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:hint="Search" 
        android:inputType="text" 
        android:maxLines="1"/>
    <ListView 
        android:id="@id/android:list" 
        android:layout_height="fill_parent"
        android:layout_weight="1.0" 
        android:layout_width="fill_parent" 
        android:focusable="true" 
        android:descendantFocusability="beforeDescendants"/>
</LinearLayout> 

—————— EDITAR: Para hacer que el teclado aparezca al iniciar ———————–

Esto es para que el teclado aparezca en el cuadro de texto de edición de nombre de usuario al inicio. Todo lo que he hecho es agregar una vista de desplazamiento vacía al final del archivo .xml, esto pone el primer texto de edición en foco y aparece el teclado. Admito que esto es un truco, pero supongo que solo quieres que esto funcione. Lo he probado y funciona bien.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="20dip"  
    android:paddingRight="20dip">
    <EditText 
        android:id="@+id/userName" 
        android:singleLine="true" 
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content" 
        android:hint="Username"  
        android:imeOptions="actionDone" 
        android:inputType="text"
        android:maxLines="1"
       />
    <EditText 
        android:id="@+id/password" 
        android:password="true" 
        android:singleLine="true"  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:hint="Password" />
    <ScrollView
        android:id="@+id/ScrollView01"  
        android:layout_height="fill_parent"   
        android:layout_width="fill_parent"> 
    </ScrollView>
</LinearLayout>

Si está buscando una solución más elocuente, encontré esta pregunta que podría ayudarlo, no es tan simple como la solución anterior, pero probablemente sea una mejor solución. No lo he probado pero aparentemente funciona. Creo que es similar a la solución que has probado y que no te funcionó.

Espero que esto sea lo que estás buscando.

¡Salud!

Prueba este código.

Para mostrar el teclado programable:

InputMethodManager imm = (InputMethodManager)
                                 getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null){
        imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
    }

Para ocultar SoftKeyboard –

InputMethodManager imm = (InputMethodManager)
                                  getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null){
        imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *