Como acessar funcções do campo EditText, onEnter, SetFocus...

Android

23/06/2013

Olá boa tarde!

Tenho os seguinte problema:

Estou usando Eclipse juno + Android 4.2.
(Sou Iniciante)


Tenho que ler um código de barras e carregar um EditText e em seguida simular um <enter>
e faze-lo perder o foco ou sair e acessar o onExit , pegar os dados e guardar numa
lista e voltar o focus ou acessar o onEnter e limpar o campo;
Veja o loop vai ficar entre o EditText e o processamento até que eu pressione o
botão <salvar> ou <cancelar> tbém posso digitar manualmente e pressionar a tecla <enter> e
finalizar gerando uma arquivo XML.



Bom que preciso sabe é como:
==============================

1-Que função usar para saber que o EditText ganhou e perdeu o Focus?

2-Que função usar para saber se o EditText Entrou ou Sai do campo?

3-Que função usar para saber se o EditText recebeu um <enter> pelo teclado?

4-Após ler o código de barras, como simular a tecla <entre> para que o campo sai por onExit ou perca o focus?


Só estou precisando saber somente isto, pois o resto já está pronto.

Desde já meus agradecimentos,

100+



ANT.CARLOS/SP
Antonio Jesus

Antonio Jesus

Curtidas 0

Respostas

Marcelo Senaga

Marcelo Senaga

23/06/2013

1 e 2:

edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
Toast.makeText(getApplicationContext(), "got the focus", Toast.LENGTH_LONG).show();
}else {
Toast.makeText(getApplicationContext(), "lost the focus", Toast.LENGTH_LONG).show();
}
}
});
GOSTEI 0
Marcelo Senaga

Marcelo Senaga

23/06/2013

3:

final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter" button
        if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
            (keyCode == KeyEvent.KEYCODE_ENTER)) {
          // Perform action on key press
          Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
          return true;
        }
        return false;
    }
});


O 4 eu não entendi muito bem. Vc quer simular o pressionamento da tecla ENTER?
GOSTEI 0
Antonio Jesus

Antonio Jesus

23/06/2013

Olá bom dia!

Obrigado pela atenção!

Sim, ao ler o código de barras e na sequência da leitura seja simulado um <Entre>, pois quero q o EditText fique esperando uma leitura, ao receber processe e volte ao edit e limpe-o, sem intervenção de mouse ou teclado.

Faço isto no Delphi, e ao ler o Código de barras acho q ele automaticamente já inseri um enter e o objeto perde o foco.

100+

ANT.CARLOS/SP
GOSTEI 0
Marcelo Senaga

Marcelo Senaga

23/06/2013

Entendi, vou fazer uns testes e vejo se consigo implementar isso.
GOSTEI 0
Antonio Jesus

Antonio Jesus

23/06/2013

Olá boa noite!
Funcionou perfeitamente,

4-Após ler o código de barras, como simular a tecla <entre> para que o campo sai por onExit ou perca o focus?


O que eu quero fazer é uma leitura igual as de Checkout de SuperMerado, onde passo o produto, le o codbarras, processa e volta para o campo cod.barras.

Quanto a pergunta 4 fiz um teste com o leitor e ele já inseri um <enter> ao ler o código de barras e vai para o próximo campo automaticamente.

Só mais uma perguntinha:

Com faço para o setar o foco num campo EditText ?


100+

ANT.CARLOS/SP






GOSTEI 0
Marcelo Senaga

Marcelo Senaga

23/06/2013

Boa pergunta. Procurando, eu achei isso:

http://stackoverflow.com/questions/8080579/android-textfield-set-focus-soft-input-programmatically
GOSTEI 0
POSTAR