Adicionar ação a tecla enter do android

6 respostas
levimendes

Olá pessoal,

Alguém sabe me dizer como eu devo proceder para adicionar uma ação ao teclado do Android?

No meu caso no botão enter.

Grato.

6 Respostas

Marky.Vasconcelos

Acredito que seja em um EditText especifico, então seria mais ou menos o seguinte:

search.setOnEditorActionListener(new OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                    if (event.getAction() == KeyEvent.ACTION_DOWN) {
                        InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        in.hideSoftInputFromWindow(search.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                        contentManager.search(StringUtils.trim(search.getText().toString()));
                        search.setText("");
                    }
                    return true;
                }
                return false;
            }
        });

O check para ACTION_DOWN é por que será lançado um DOWN e um UP para a mesma tecla, e isso faria o listener ser disparado duas vezes para ENTER.

levimendes

Olá Marky.Vasconcelos,

Muito Obrigado por responder, o exemplo funciona perfeitamente.

:smiley:

Marky.Vasconcelos

Por nada.

PS: O código que está ali no meio do InputMethodManager é para esconder o teclado :wink:

levimendes

O único problema que estou tendo agora é que quando eu clico em cima do EditText, o mesmo está sendo ocultado pelo teclado.
Isso está acontece nos aplicativos com android 3.2, no aplicativos com android 2.2 quando eu clico no componente, caso o componente esteja posicionado no local onde o teclado irá aparecer, o componente é automaticamente reposicionado para cima do teclado.

Tem idéia do motivo de isso acontecer?
Será que esse comportamento está relacionado a versão do Android?

Grato.

Marky.Vasconcelos

Eu já resolvi isso adicionando o layout em um scroll.

levimendes

levimendes:
O único problema que estou tendo agora é que quando eu clico em cima do EditText, o mesmo está sendo ocultado pelo teclado.
Isso está acontece nos aplicativos com android 3.2, no aplicativos com android 2.2 quando eu clico no componente, caso o componente esteja posicionado no local onde o teclado irá aparecer, o componente é automaticamente reposicionado para cima do teclado.

Tem idéia do motivo de isso acontecer?
Será que esse comportamento está relacionado a versão do Android?

Grato.

Olá Pessoal, na verdade eu estava enganado, por falta de atenção. :oops: :oops: :oops:

No tablet, quando nós digitamos algum texto em um campo EditText, o android coloca em cima do teclado um campo exibindo o texto conforme você digita, e ao lado desse exibe algumas sugestões de palavras.

Grato, Levi.

[RESOLVIDO]

Criado 3 de setembro de 2012
Ultima resposta 5 de set. de 2012
Respostas 6
Participantes 2