¿Cómo cambiar el botón de acción del método de entrada en Android?

En este artículo, la opción IME (Acción de método de entrada) se cambia en Android de acuerdo con nuestros requisitos. El botón de acción del método de entrada se encuentra en la esquina inferior derecha del teclado en pantalla. De manera predeterminada, el sistema usa este botón para una acción Siguiente o Listo, a menos que su campo de texto permita texto de varias líneas, en cuyo caso el botón de acción es un retorno de carro. Sin embargo, puede especificar acciones adicionales que podrían ser más apropiadas para sus campos de texto, como Ir, Enviar, Anterior, Ninguno, etc. La opción IME para Siguiente y Listo se muestra a continuación.
 

  • Acción siguiente
  • Acción realizada
    1. Agregue el siguiente código en el archivo activity_main.xml . En este archivo, especificamos la opción IME para EditText según la necesidad. Aquí se agrega una vista de imagen y dos textos de edición y se especifica la opción IME para actionDone .

      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"
          tools:context=".MainActivity">
        
          <ImageView
              android:layout_gravity="center"
              android:layout_marginTop="50dp"
              android:layout_width="200dp"
              android:layout_height="200dp"
              android:src="@drawable/gfg"
              />
        
          <EditText
              android:layout_marginTop="50dp"
              android:layout_marginStart="10dp"
              android:layout_marginEnd="10dp"
              android:id="@+id/editText1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="Username"
              android:paddingBottom="20dp"
              android:inputType="text" />
        
          <EditText
              android:paddingTop="20dp"
              android:layout_margin="10dp"
              android:id="@+id/editText2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="Password"
              android:imeOptions="actionDone"
              android:inputType="textPassword" />
        
      </LinearLayout>

    Ahora agregue el siguiente código en el archivo MainActivity.java . En este archivo, agregamos un oyente a nuestro EditText que corresponderá a nuestra acción en consecuencia. Aquí anulamos el método onEditorAction y mostramos el brindis para las opciones ACTION DONE y ACTION NEXT IME.

    MainActivity.java

    package org.geeksforgeeks.imeoption;
      
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.inputmethod.EditorInfo;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
      
    public class MainActivity extends AppCompatActivity {
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            EditText login = findViewById(R.id.editText1);
            EditText password = findViewById(R.id.editText2);
      
            login.setOnEditorActionListener(actionListener);
            password.setOnEditorActionListener(actionListener);
        }
      
        // whenever the user clicks on IME button this listener will
        // get invoked automatically.
        private TextView.OnEditorActionListener actionListener
            = new TextView.OnEditorActionListener() {
                  @Override
                  public boolean onEditorAction(TextView v,
                                                int actionId, KeyEvent event)
                  {
                      switch (actionId) {
      
                      case EditorInfo.IME_ACTION_NEXT:
                          Toast.makeText(MainActivity.this,
                                         "Next", Toast.LENGTH_SHORT)
                              .show();
                          break;
      
                      case EditorInfo.IME_ACTION_DONE:
                          Toast.makeText(MainActivity.this,
                                         "Login", Toast.LENGTH_SHORT)
                              .show();
                          break;
                      }
                      return false;
                  }
              };
    }

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 *