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 <felippenasuacasa@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
}
--






0 comentários:
Postar um comentário