Android: Editar el Botón Ir de Texto


Tengo un Texto de edición que se define de la siguiente manera.

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text" 
android:hint="@string/field_text"
android:id="@+id/field"
/>

Quiero establecer un comando personalizado para que cuando alguien haga clic en el botón Done/Go en el teclado en pantalla, se haga clic en un botón o simplemente ejecute los métodos que ejecuta el botón. Creo que esto tiene algo que ver con las opciones de ime, pero no he sido capaz de averiguar cómo funcionan. Gracias de antemano por cualquier ayuda!

Author: Corey Alexander, 2010-07-18

2 answers

Quieres una combinación de android: imeOptions y setOnEditorActionListener

<EditText android:id="@+id/some_edittext"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:imeOptions="actionSend">
</EditText>


some_edittext.setOnEditorActionListener(new OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            some_button.performClick();
            return true;
        }
        return false;
    }
});

Obviamente debe cambiar actionSend a la acción que desea, y actualizar IME_ACTION_SEND correspondientemente.

 120
Author: nsheridan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-20 00:04:03

Echa un vistazo a la setImeActionLabel método (o atributos imeActionLabel y imeActionId) y setOnEditorActionListener para configurar un receptor para que responda a los eventos.

 0
Author: adamp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-18 20:13:32