Cómo ocultar programáticamente el teclado virtual de Android

En este artículo, aprenderemos cómo ocultar el teclado virtual mediante programación. El teclado generalmente se oculta, pero hay ciertos casos en los que no se oculta. Entonces, para una mejor experiencia del usuario, el teclado está oculto mediante programación.

Sin usar el enfoque a continuación, la respuesta predeterminada de la aplicación se muestra a continuación:

Acercarse:

  1. Ahora agregue el siguiente código en el archivo activity_main.xml . El siguiente código agrega una vista de texto , un texto de edición y un botón en activity_main. Cuando se hace clic en el botón, se invoca la función setText en la clase MainActivity.

    actividad_principal.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="16dp"
        tools:context=".MainActivity">
      
        <TextView
            android:textStyle="bold"
            android:textColor="#219806"
            android:id="@+id/text_view_result"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="GeeksForGeeks"
            android:textSize="22sp" />
      
        <EditText
            android:layout_marginTop="20dp"
            android:id="@+id/edit_text_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
      
        <Button
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:onClick="setText"
            android:text="Set Text" />
      
    </LinearLayout>
  2. Ahora agregue el siguiente código en el archivo MainActivity.java . Aquí definimos la función setText y closeKeyboard . La función setText se invoca cuando el usuario hace clic en el botón. Toma la entrada de edittext y la reemplaza en la vista de texto. Luego llama a la función closeKeyboard y borra el valor de edittext. La función closeKeyboard oculta el teclado.

    MainActivity.java

    package org.geeksforgeeks.gfgHideKey
      
        import android.content.Context;
    import android.os.Bundle;
    import android.view.View;
    import android.view.inputmethod
        .InputMethodManager;
    import android.widget.EditText;
    import android.widget.TextView;
      
    public class MainActivity
        extends AppCompatActivity {
        private TextView textViewResult;
        private EditText editTextInput;
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            textViewResult
                = findViewById(
                    R.id.text_view_result);
            editTextInput
                = findViewById(
                    R.id.edit_text_input);
        }
      
        public void setText(View v)
        {
            String newText
                = editTextInput
                      .getText()
                      .toString();
            textViewResult.setText(newText);
      
            closeKeyboard();
            editTextInput.setText("");
        }
      
        private void closeKeyboard()
        {
            // this will give us the view
            // which is currently focus
            // in this layout
            View view = this.getCurrentFocus();
      
            // if nothing is currently
            // focus then this will protect
            // the app from crash
            if (view != null) {
      
                // now assign the system
                // service to InputMethodManager
                InputMethodManager manager
                    = (InputMethodManager)
                        getSystemService(
                            Context.INPUT_METHOD_SERVICE);
                manager
                    .hideSoftInputFromWindow(
                        view.getWindowToken(), 0);
            }
        }
    }

Producción:

Publicación traducida automáticamente

Artículo escrito por madhavmaheshwarimm20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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