1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como executar um método automaticamente fora do onCreate() da Activity

Tenho uma MainActivity que possui 4 botões, quando o usuário seleciona algum deles, o método do botão chama outra Activity, que exibirá uma consulta feita num XML em um ListView dessa nova Activity. Estou fazendo assim:

Método onCreate da nova Activity:

public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);
        setContentView(R.layout.refeicaoview);
        lstDados = (ListView)findViewById(R.id.lstDados);
        adpItens = new ArrayAdapter<String>(this, R.layout.item_lista);
        lstDados.setAdapter(adpItens);
        iniciaBusca(); //este método faz a consulta ao XML e retorna os dados para serem exibidos na listView acima
}

O que eu percebo é que dessa maneira, quando se clica no botão na MainActivity, ele demora para criar a nova Activity, pois imagino que execute o iniciaBusca() primeiro, carregue o listView para depois exibir a tela.

O que eu quero é que a tela seja criada, e esse método iniciaBusca() inicie em seguida, e enquanto ele executa, aparecer um progressDialog na interface para o usuário.

Alguém tem uma dica? Solução? :D

  • Então quando você clica no botão a activity muda mas demora para a aparecer o conteúdo do xml no ListView e você quer que enquanto esteja carregando aconteça algo? Minha sugestão de solução para isso é você criar uma Thread (ou duas, vai depender do teu código) quando clicar no botão, essa Thread executará o preenchimento do ListView, e, ao mesmo tempo ou usando outra Thread, você coloca pra setar a exibição do progressDialog, por exemplo. Se seu método que preenche o ListView retornar um boolean você vai poder criar um loop while numa Thread dessas e verificar a cada iteração se já está ok.

    Lucas Sousa   22 de abr de 2016
  • Logo, quando o método retornar um "true", por exemplo, você pode redefinir ou chamar uma nova activity.

    Lucas Sousa   22 de abr de 2016
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags android ou faça a sua própria pergunta.