Bom dia pessoal, estou com o seguinte problema usando o código abaixo.
Mesmo colocando o tipo do campo para final ele continua dando o erro.
private final String opcao = null;
A ideia do código abaixo é o úsuario a partir de um botão chamar a função passando a opção como parametro, assim para cada item a ser escolhido o usuario iria enviar uma solicitação.
Porém eu não estou conseguindo limpar essa variavel, então cada vez que entra na rotina ele sempre seleciona o último valor que o úsuario digitou.
public void ContinuaPinpadSec(TelaPrincipal tela, String opcao) {
try {
status = clisitef.continuaFuncaoSiTefInterativo ();
int delay3 = 1000;
int interval3 = 1000;
if (status == 10000) {
// while (status == 10000)
// {
timer4.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
status = clisitef.continuaFuncaoSiTefInterativo();
int proximoComando;
String texto = "";
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
if (status == 10000) {
// Aqui deve-se colocar o tratamento de cada tipo de ProximoComando
System.out.println ("ProximoComando = " + clisitef.getProximoComando ());
System.out.println ("TipoCampo = " + clisitef.getTipoCampo ());
System.out.println ("TamanhoMinimo = " + clisitef.getTamanhoMinimo ());
System.out.println ("TamanhoMaximo = " + clisitef.getTamanhoMaximo ());
System.out.println ("Buffer = " + clisitef.getBuffer ());
String tipocampo = String.valueOf(clisitef.getTipoCampo());
System.out.println ("opcao = " + opcao);
if (
!clisitef.getBuffer().trim().equals("")
&& (
tipocampo.trim().equals("-1")
|| tipocampo.trim().equals("505")
|| tipocampo.trim().equals("5013")
|| tipocampo.trim().equals("500")
)
) {
texto += System.lineSeparator();
String[] split = clisitef.getBuffer().split(";");
for (int x = 0; x < split.length; x++) {
texto = split[x] + System.lineSeparator();
}
tela.getTela().setText(texto + System.lineSeparator());
}
proximoComando = clisitef.getProximoComando();
if (proximoComando >= 20 && proximoComando != 23 && proximoComando != 22) {
// clisitef.setBuffer(in.readLine());
clisitef.setBuffer(opcao);
}
int tamanhoOpcao = opcao.length();
if (tamanhoOpcao >= 0) {
opcao = null;
}
}
if (status != 10000) {
System.out.println ("ContinuaFuncaoSiTefInterativo retornou " + status);
System.out.println ("Trn pendentes: " + clisitef.obtemQuantidadeTransacoesPendentes (pedido,data_pedido));
clisitef.finalizaTransacaoSiTefInterativo ((short) 1,pedido,data_pedido, "102000");
}
}
}, delay3, interval3);
}
if (status != 10000) {
System.out.println ("ContinuaFuncaoSiTefInterativo retornou " + status);
System.out.println ("Trn pendentes: " + clisitef.obtemQuantidadeTransacoesPendentes (pedido,data_pedido));
clisitef.finalizaTransacaoSiTefInterativo ((short) 1,pedido,data_pedido, "102000");
}
} catch (Exception ex) {
tela.getTela().setText("Problema na DLL" + System.lineSeparator());
System.out.println("Erro "+clisitef.getBuffer ());
}
}