Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Atualização de Lista

no getContatos eu retorno uma lista instanciada no Dao, caso esteja armazenando em memoria
ou entao faço um select no sqlite e crio uma nova lista.

Mas já entendi qual o problema. O problema é a referência da lista. Enquanto estou usando a lista em memória estou usando sempre a mesma, a mesma que instancio no Dao fica referenciada no adapter, e quando eu dou um clear no adapter que é filho de arrayAdapter ele limpa minha lista, ou seja, na hora do addAll nao tem nada pra adicionar. 
Isso já nao acontece quando eu pego do sqlite pq cada vez que faco o select estou criando uma nova lista.

A resposta era meio obvia mas ontem nao estava pensando direito, hoje ja deu uma clareada. rsrs

De qualquer obrigado.


Abs,
André 


2015-02-05 21:59 GMT-02:00 Rafael de Araújo <orafaaraujo@gmail.com>:
Fala André, pode nos passar o que tem dentro deste getContatos()?
E, como você envia essa lista para a tela de cadastro? Como adiciona o novo registro?

Abs

Att,
Rafael de Araújo

Em 5 de fevereiro de 2015 16:52, André Dina <andrepd@gmail.com> escreveu:
Senhores, estou com uma dúvida, tenho uma ListActvity onde chamo uma tela de cadastro e retorno depois pra lista.Nesse retorno mando a lista atualizar, até aí tudo certo.

Acontece que primeiramente eu testei isso usando uma lista de objetos na memoria compartilhada entre as activitys, nesse caso só de executar o adapter.notifyDataSetChanged() eu ja conseguia atualizar a lista. 

Depois resolvi salvar com o sqlite essa lista, só que a atualização parou de funcionar, aí forcei a limpeza da lista e readicionei no adapter com o clear() e depois um addAll(list) só entao chamo o notifyDataSetChanged(), funcionou. Só que se eu adicionar esses mesmos metodos na versao anterior a lista simplesmente apaga e nao atualiza.

O detalhe é que nos dois casos eu to usando um mesmo dao e só alterei o acesso no dao, na classe da lista está tudo igual nas duas formas. Não estou entendo bem essa diferença. Não sei se deu pra entender.

Minha activity esta resumidamente assim:

//Activity
public class ContatoList extends ListActivity {

private ContatoDAO contatoDao;
private List<Contato> contatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
contatoDao = ContatoDAO.getInstance();
contatos = contatoDao.getContatos();
...
setListAdapter(meuAdapter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
contatos = contatoDao.getContatos();
                //usando esses dois metodos com a lista em memoria a lista apaga
                //entretando nao funciona com a lista salva no sqlite
                meuAdapter.clear();
meuAdapter.addAll(contatos);
               meuAdapter.notifyDataSetChanged();
}

}

A unica diferença esta no getContatos() que hora retorno a lista que esta no DAO, hora eu faço um select no sqlite

Obrigado,
André Dina

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

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

0 comentários:

Postar um comentário