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

Button visível por um período de tempo

Olá pessoal,

Gostaria de saber se há algum modo de deixar um botão que está invisível, se tornar visível por um certo período de tempo e então sumir.

tenho este código:

campoFoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                campoBtnFoto.setVisibility(View.VISIBLE);
            }
        });

porem apenas com isso, o botão fica apenas visível e não torna a ficar invisível ...

Se alguém souber,

Agradeço, obrigado.

5 respostas

Oi João, tudo bem ?

Você quer que cada vez que você clique nesse botão ele apareça e reapareça ?

Você pode deixar um atributo do tipo boolean e ir trocando de true para false, e com isso você consegue fazer um if else que deixa visível ou invisível.

Espero ter ajudado :D

Abraços

Sim, mas eu queria que ele ficasse visível por um período de tempo, digamos 2 segundos, e depois desaparece...

Creio que o CurrentTimeMillis() não me ajudará muito, por que ele captura o tempo e não continua somando.

Queria algo que exemplo: - Cliquei no botão -Contador começa, 1,2,3,4,5 -Chegou no 6 o botão some -Fecha contador

Só que isso em tempo real, o for não me ajuda porque depende do processador da pessoa.

Explica um pouco melhor a funcionalidade para que conseguimos te dar uma solução um pouco melhor !

Exemplo,

campoFoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                campoBtnFoto.setVisibility(View.VISIBLE);
            }
        });

Eu tenho esse código, quando inicia a activity o botão está setado como invisível.

Quando eu clico na imagem eu quero que o botão apareça, porem eu não quero que ele fica aparecendo para sempre.

Então a minha ideia é:

Eu cliquei na foto.

Beleza, eu cliquei e o botão apareceu.

porem esse botão vai ficar visível por 5 segundos.

Então digamos:

if (TempoLogoAposClick == 5){
 campoBtnFoto.setVisibility(View.INVISIBLE);
}
solução!

Existe uma classe no java que pode te ajudar, que se chama Timer, ela pode fazer isso.

Dá uma olhadinha ai de como usar-la :

http://www.java2s.com/Code/Java/Development-Class/UsejavautilTimertoscheduleatasktoexecuteonce5secondshavepassed.htm

Esse exemplo ele tá fazendo em 5 em 5 segundos.

O que eu sugiro você fazer é criar um método que retorne um verdadeiro ou falso e com base nisso pode fazer a view ficar visível ou invisível.

Espero ter ajudado :D