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

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
e faze-lo perder o foco ou sair e acessar o onExit , pegar os dados e guardar numa
lista e voltar o foco 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 ou tbém posso digitar manualmente e pressionar a tecla 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 pelo teclado?

4-Após ler o código de barras, como simular a tecla para que o cursor 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

Enter ? Cara isso é mobile não programação delphi para desktop.

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

[code] EditText editText = (EditText) findViewById(R.id.edittxt);
editText .setOnFocusChangeListener(new OnFocusChangeListener() {

    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus){
         // faz algo
        }             
    }
});[/code]

2-Que função usar para saber se o EditText Entrou ou Sai do campo?
Saber se alguma coisa foi escrita ?

EditText editText = (EditText) findViewById(R.id.edittxt); editText.addTextChangedListener(new TextWatcher() { // depois de terminar de escrever public void afterTextChanged(Editable s) {} // antes da ultima edição public void beforeTextChanged(CharSequence s, int start, int count, int after) {} //edição em tempo real public void onTextChanged(CharSequence s, int start, int before, int count) {} });

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

EditText editText = (EditText) findViewById(R.id.edittxt); editText.setImeActionLabel("Custom text", KeyEvent.KEYCODE_ENTER); editText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: //enter pressionado return true; default: break; } } return false; } });

4-Após ler o código de barras, como simular a tecla para que o cursor sai por onExit ou perca o focus?
Não entendi…
mas se quer mudar o focus é so requestFocus.

bom dia!
Blz, obrigado pela atenção!

Então, fiz os teste e deu certo.
Quanto a pergunta 4, o q eu queria fazer é simular um checkout de supermercado, onde o loop fica entre o Edit, processamento, edit até ser finalizado pelo operador.

O leitor de código de barras já inseri um após ler e o obj edit já perde o foco automático.

100+

ANT.CARLOS/SP

Isso vai simular um click em uma view

Caso não seja isso, quando você lê um código de barra provavelmente retorna algo por algum método… só chame direto o método que é chamado quando alguém aperta enter no edittext;

Olá boa tarde!
Estou com seguinte problema:
Ao gerar o Arquivo do XML é gerado um erro na linha

Writer file = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dirXml+nomArq),“ISO-8859-1”));

E ao pegar horas, minutos, segundos tbém gera um erro.

Alguém poderia me ajudar nesta ?

Desde já meus agradecimentos.

ANT.CARLOS/SP

06-30 17:51:41.579: W/System.err(2355): java.io.FileNotFoundException: /c:/temp4/ARQUIVO_XML.XML: open failed: ENOENT (No such file or directory) 06-30 17:51:41.579: W/System.err(2355): at libcore.io.IoBridge.open(IoBridge.java:416) 06-30 17:51:41.579: W/System.err(2355): at java.io.FileOutputStream.<init>(FileOutputStream.java:88) 06-30 17:51:41.579: W/System.err(2355): at java.io.FileOutputStream.<init>(FileOutputStream.java:128) 06-30 17:51:41.579: W/System.err(2355): at java.io.FileOutputStream.<init>(FileOutputStream.java:117) 06-30 17:51:41.590: W/System.err(2355): at com.br.teste012.GeraXml.setGeraXML(GeraXml.java:68) 06-30 17:51:41.590: W/System.err(2355): at com.br.teste012.MainActivity$3.onClick(MainActivity.java:71)

[quote]public void setGeraXML() throws IOException {
data = ManipulaData.getDataAtual();

   String dirXml = "c:/temp/";
   String nomArq =  "ARQUIVO_XML.XML";
   

   Calendar agora = null;
   // horas, minutos e segundos
   horas = agora.get(Calendar.HOUR);
   minutos = agora.get(Calendar.MINUTE);
   segundos = agora.get(Calendar.SECOND);	    
   
   
   StringBuilder xml = new StringBuilder();

xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
   .append("<codbar>999999999</codbar>")
   .append("<data>99/99/99</data")
   .append("<horas>99:99:99</horas");

   System.out.println(xml.toString());   .....até aqui tudo ok
   
  Writer file = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dirXml+nomArq),"ISO-8859-1"));
   file.write(xml.toString());
   file.close();

}
[/quote]