Bom dia gente,
Eu estou tendo um problema com o thread.sleep() e queria pedir ajuda de voces.
Segue o código
[code]
final Button comecar = (Button) findViewById(R.id.comecar);
final TextView queMeFazSorrir = (TextView) findViewById(R.id.que_me_faz_sorrir);
final Button botaoProximo = (Button) findViewById(R.id.buttonProximo1);
comecar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
comecar.setVisibility(v.GONE);
queMeApoia.setVisibility(v.VISIBLE);
Thread.sleep(2000);
botaoProximo.setVisibility(v.VISIBLE);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println("Ocorreu o seguinte erro: " + e);;
}
}
});[/code]
O problema é que eu quero que ele deixe o textview queMeApoia visível, e depois de dois segundos apareça o botaoproximo, mas nao esta acontecendo isso. depois que clica no comecar, fica parado dois segundos depois aparece tudo de uma vez…
como eu posso resolver isso??? nao estou usando nenhuma thread, só o sleep…
Obs.: estou programando para android.
Agradeço muito se vocês puderem me ajudar : - )
Se você está no Android, pode postar delayed algo.
Seu caso:
final Button comecar = (Button) findViewById(R.id.comecar);
final TextView queMeFazSorrir = (TextView) findViewById(R.id.que_me_faz_sorrir);
final Button botaoProximo = (Button) findViewById(R.id.buttonProximo1);
comecar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
comecar.setVisibility(v.GONE);
queMeApoia.setVisibility(v.VISIBLE);
getHandler().postDelayed(new Runnable(){
public void run(){
botaoProximo.setVisibility(v.VISIBLE);
}}, 2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println("Ocorreu o seguinte erro: " + e);;
}
}
});
PS: getHandler() é de qualquer View, se essa for sua Activity use comecar.getHandler() invés de getHandler()
Note que a tela não irá ficar parada e ação acontecera após dois segundos.
Outra solução seria usar AsyncTask.
Muito obrigado cara! Vou testar isso agora no meu aplicativo 
Só pra constar, assim que eu coloquei isso, deu erro na parte catch, aí o programa me deu opção de remover a clausula catch, aí deu erro no View v, pediu pra colocar final na frente, ficou tipo assim:
[code]comecar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
comecar.setVisibility(v.GONE);
queMeApoia.setVisibility(v.VISIBLE);
comecar.getHandler().postDelayed(new Runnable(){
public void run(){
botaoProximo.setVisibility(v.VISIBLE);
}}, 2000);
}
});[/code]