Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Duvida na hora de verificar dados no Firebase

Oi, quero fazer uma verificação de se determinado formulario ja foi preenchido ou não, pra isso estou buscando na tabela do formulario, se já, alimento um txt view com o id e depois verifico se o txt view esta nulo ou não, se estiver ele teria que levar pra tela do form, caso não, ele só daria um toast dizendo que já foi preenchido o form. Porém ele não está pegando meu if, no que estou errando?

 private void cadastraChegada() {
        lista_inspecao.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
            public void onItemClick(AdapterView<?> parent, View view, final int position, final long id) {
               final Inspecao inspecao = (Inspecao) lista_inspecao.getItemAtPosition(position);
               databaseReference.child("ChegadaInspecao").addValueEventListener(new ValueEventListener() {
                   @Override
                   public void onDataChange(DataSnapshot dataSnapshot) {
                       listaChegada.clear();
                       for(DataSnapshot objetoSnapShot:dataSnapshot.getChildren()){
                           InspecaoChegada i = objetoSnapShot.getValue(InspecaoChegada.class);

                           if(i.getIdInsp().equals(inspecao.getId())) {
                               listaChegada.add(i);
                               idInspChegada.setText(i.getId());
                           }if(idInspChegada!=null){
                               Toast.makeText(ListaInspecao.this, "Inspeção finalizada!", Toast.LENGTH_SHORT).show();
                           }else {
                               idInspChegada.setText(null);
                               Toast.makeText(ListaInspecao.this, "Finalize inspeção!", Toast.LENGTH_SHORT).show();
                           }

                       }
                   }

                   @Override
                   public void onCancelled(DatabaseError databaseError) {
                   }
               });
           }
        });

    }
13 respostas

Oi Rafaela, tudo bem ?

Qual if ?

if(i.getIdInsp().equals(inspecao.getId())) {
                               listaChegada.add(i);
                               idInspChegada.setText(i.getId());
                           }if(idInspChegada!=null){
                               Toast.makeText(ListaInspecao.this, "Inspeção finalizada!", Toast.LENGTH_SHORT).show();
                           }else {
                               idInspChegada.setText(null);
                               Toast.makeText(ListaInspecao.this, "Finalize inspeção!", Toast.LENGTH_SHORT).show();
                           }

este

é que você tem dois ifs, ele não está passando em nenhum ?

Ele passa no primeiro e ok, mas na hora de verificar se o txt view esta nulo ou não, ele passa direto...

e ai cai no else ? é isso que tá rolando?

Ao contrário, ele só fica como se estivesse diferente de null o tempo todo. Só fica dando como inspeçao finalizada ali...

então, lembra que é uma view, você fez a busca dela através do método findViewById(), então em tese ele não está nulo.

Será que você não quer ver outra coisa ?

Eu quero enxergar o que tem dentro da view, no caso. Quero que identifique que se a view tem ou não o que eu quero, exemplo:

SE (VIEW TIVER ID DO QUE EU QUERO)
    ESCREVE QUE JÁ FINALIZOU
SE NAO TIVER
    ESCREVE QUE PRECISA FINALIZAR

ai, você pode pegar o conteúdo dela e verificar se é igual ao que quer.

para pegar o conteúdo:

String id = idInspChegada .getText().toString()

Ai você pode fazer uma validação essa variavel

Mas como faço isso? Por que primeiro verifico se é igual, se for igual, eu alimento a view... se não for igual eu tenho que falar que precisa finalizar.

if(idInspChegada!=null){
                               Toast.makeText(ListaInspecao.this, "Inspeção finalizada!", Toast.LENGTH_SHORT).show();
                           }else {
                               idInspChegada.setText(null);
                               Toast.makeText(ListaInspecao.this, "Finalize inspeção!", Toast.LENGTH_SHORT).show();
                           }

aqui, nesse pedaço, como eu faria essa verificação? :s jogo o idInspChegada dentro de uma variavel string? É isso?

solução!
String id = idInspChegada .getText().toString()


if(! id.isEmpty()){
                               Toast.makeText(ListaInspecao.this, "Inspeção finalizada!", Toast.LENGTH_SHORT).show();
                           }else {
                               idInspChegada.setText(null);
                               Toast.makeText(ListaInspecao.this, "Finalize inspeção!", Toast.LENGTH_SHORT).show();
                           }

isso deve ajudar

Funcionou, Matheus, só tive que alterar pra ele limpar a view depois que der a mensagem de finalizado!

Vlw!!!!!