Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problema com AsyncTask, minha lista não aparece

aparece só a lista do catch
tipo uma lista de erro já é um bom passo...
mais preciso exibir a lista do try
coloquei meu codigo dentro do : onPreExecute()

fiz assim
declarei a classe la no contrutor
protected minhaListaInicial minhalista;

ai dentro do on create coloquei;
        minhalista = new minhaListaInicial();
        minhalista.execute();


amigo esse negico de chama a actv poderia demostrar pra mim, sempre faço assim...
num sei fazer de outra forma.

velew


Em terça-feira, 25 de setembro de 2012 11h27min54s UTC-3, Lucas Matias escreveu:

Obs: Inicialize a activity via construtor, realmente como você fez uma classe interna eu não sei se dá problema de chamar ela assim, mas acho que pode dar. 


Em 25 de setembro de 2012 11:26, Lucas de Jesus Matias <lucas.m...@gmail.com> escreveu:
Acho que de todo jeito vai pra lá, você só tem que verificar se o resultado é nulo ou não.

acho que não tem problema utilizar try catch.

Ah, outra coisa, você está chamando a activity de forma estática, acho que isso dá problema.

Tenta passar ela por parametro (ou passa o Context que é uma superclasse da activity) ai a partir dessa activity você passa por exemplo no arrayadapter:

                ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(activity, android.R.layout.simple_list_item_1, errorlista);

Em 25 de setembro de 2012 11:23, Felippe dos Santos Ferreira <felippen...@gmail.com> escreveu:

manu outra coisa...
mais e meus trys catch...
eu retiro...

tipo executa no doInBackground
se der certo vai pro OnPostExecute
se der errado vai pra onde ?

é isso ?

Em terça-feira, 25 de setembro de 2012 11h00min17s UTC-3, Lucas Matias escreveu:
Se não me engano o adapter você tem que por no OnPostExecute,


Olha só o meu exemplo:

Também comecei a aprender sobre isso ontem, mas pelo que entendi, o doInBackground fica só a parte pesada, e joga o resultado para resolver o resto no OnPostExecute, me corrijam se estiver errado. 

public  class ChecarSessaoTask extends AsyncTask<String, Void, Boolean>{
private ProgressDialog progress;
private SessionActivity activity;

public ChecarSessaoTask(SessionActivity activity) {
this.activity = activity;
}
@Override
protected void onPreExecute() {
progress = new ProgressDialog(activity);
progress.setMessage("Carregando...");
progress.show();
}
@Override
protected Boolean doInBackground(String... params) {
return Sessao.checarSessaoExterna(activity);
}
@Override
protected void onPostExecute(Boolean resultado) {
progress.dismiss();
AplicacaoCMA app = activity.app;
if(!resultado) {
new RecarregaUsuarioTask(activity).execute(); 
} else {
activity.geraContador();
}

}

Em 25 de setembro de 2012 10:53, Felippe dos Santos Ferreira <felippen...@gmail.com> escreveu:

galera fiz um app tudo certinho na versão 2,2
ai a galera do trampo disse "Boa mlk, muito show, coloca nu tablet pra gente ver roda, e coloca nu cel do diretor pra ele testa na casa dele"
Ai aconteceu o problema, em versões acima da 2,3 ele num roda, da erro...
ai lendo a documentação do android vi que precisa de um tal de AsyncTask,
eu fiz mais a lista aparece em branco.
poderiam mi dar umas dicas de como fazer funfar...

segue o codigo:

public void onCreate(Bundle savedInstanceState) {

      new minhaListaInicial();


}

public class minhaListaInicial extends AsyncTask <Void, Void, Void> {  //acho que estou errando aqui
           
        protected void onPostExecute(String result) {    
        }

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected void onProgressUpdate(Void... values) {
        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub
            try {
                String url = "http://www.xxx.com.br/android/listapaginabuscames.php";
                String respostaRetornada = null;
                respostaRetornada = Conexao.executaHttpGet(url);
                String resposta = respostaRetornada.toString();
                char separador = '#';
                int contaUsuarios = 0;
                for (int i = 0; i < resposta.length(); i++)
                    if (separador == resposta.charAt(i))
                        contaUsuarios++;

                ListaNoticiasMes = new String[contaUsuarios];

                char caracter_lido = resposta.charAt(0);
                String nome = "";
                for (int i = 0; caracter_lido != '^'; i++) {
                    caracter_lido = resposta.charAt(i);
                    if (caracter_lido != '#') {
                        nome += (char) caracter_lido;
                    } else {
                        ListaNoticiasMes[posicao] = "" + nome;
                        posicao++;
                        nome = "";
                    }
                }
               
                ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(TelaBuscarExibeNoticias.this, android.R.layout.simple_list_item_1, ListaNoticiasMes);
                listanoticiabusca.setAdapter(arrayAdapter);
               
                listanoticiabusca.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parentView,
                            View selectedItemView, int position, long id) {
                        // TODO Auto-generated method stub
                        Toast.makeText(getApplication(),
                                ((TextView) selectedItemView).getText(),
                                Toast.LENGTH_LONG).show();
                        Intent prox = new Intent(TelaBuscarExibeNoticias.this,
                                NoticiaDetalhada.class);
                        prox.putExtra("NOMES", ((TextView) selectedItemView).getText());
                        startActivity(prox);
                    }
                });    
            } catch (Exception erro1) {
                Mensagens("Impossivel exibir lista ", "Verifique sua internet "
                        + erro1);
               
                String [] errorlista = {"Não foi possiver exibir a lista de noticias, verifique sua internet"};
               
                ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(TelaBuscarExibeNoticias.this, android.R.layout.simple_list_item_1, errorlista);
                listanoticiabusca.setAdapter(arrayAdapter);
            }
            return null; // acho que deveria retornar algo
        }

--
 
 

--
 
 


--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário