Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Atualizar fragment sem ter que girar a tela

Valeu Cristian, o problema é o seguinte: quando eu clico no botão para atualizar as informações do banco de dados eu quero que o fragment com a minha lista de componentes também seja atualizado.

Atualmente isso [atualizar a tela] só está acontecendo quando o aplicativo é aberto ou quando coloco o aparelho em modo paisagem (obrigando-o a recriar o fragment). O código da classe é este aqui, e o código que eu destaquei no email anterior é o onClick que adiciona as informações no banco e que eu acredito que será responsável por atualizar o fragment.

E claro né, se alguma coisa não estiver ficado clara eu tento me expressar melhor, valeu a atenção.



Em sexta-feira, 26 de outubro de 2012 20h42min53s UTC-2, Cristian Cardoso escreveu:
Opa!

manda mais informações do erro que esta ocorrendo... pois apenas com o trecho de código que disponibilizou não consegui identificar nada...


Abraço
Cristian Cardoso
App CTN Car: http://goo.gl/fPCjE

Em 26 de outubro de 2012 18:37, delki8 <del...@gmail.com> escreveu:
Mas o AsyncTask (vou ler mais a respeito) apenas substitui a minha Thread correto? Talvez como uma melhor prática e tal. Mas agora eu gostaria realmente de apenas atualizar o conteúdo desse bendito fragment, parece algo tão simples mas ta me dando tanto olé xD.

Bom, se alguém tiver alguma ideia, eu ficarei muito feliz, vou continuar pesquisando aqui.

Em 26 de outubro de 2012 08:00, luciofm <luc...@gmail.com> escreveu:
Via de regra, qualquer operação de I/O deve ser feita fora da thread
principal, e uma leitura do banco é I/O.

Para isso mesmo existe o CursorLoader:
This class implements the Loader protocol in a standard way for
querying cursors, building on AsyncTaskLoader to perform the cursor
query on a background thread so that it does not block the
application's UI.

Lúcio Maciel
luc...@gmail.com


2012/10/26 Buiu <buiuc...@gmail.com>:
> Cara te recomendaria a dar uma olhada e utilizar o AsyncTask
>
> é claro utilizando Thread tbm funciona...
>
> Cara, so vc esta apenas fazendo a consulta no banco não é necessário colocar
> dentro de uma Thread... pode fazer isso direto....
> "OnMenuItemClickListener() {"
>
> Deixa apenas a parte do download dentro da Thread ou AsyncTask.
>
> Abraço
> Cristian Cardoso
> App CTN Car: http://goo.gl/fPCjE
> @CTNCar
> @CTNCardoso
> http://ctncardoso.com.br
>
>
>
> Em 25 de outubro de 2012 19:22, delki8 <del...@gmail.com> escreveu:
>
>> Otavio, obrigado pela resposta. Fiz de uma forma que eu acho que é a
>> correta mas ele ainda não passou. A parte destacada é onde eu tento pegar a
>> lista que veio do banco e atualizar ela na listview, fiz alguma besteira?
>>
>>  refreshParcial.setOnMenuItemClickListener(new OnMenuItemClickListener() {
>> @Override
>> public boolean onMenuItemClick(MenuItem item) {
>> new Thread(){
>> @Override
>> public void run() {
>> BoletimControl bControl = new BoletimControl();
>> bControl.atualizaBoletins(false, PublicacoesGUI.this);
>> BoletimRepositorio bRep = new BoletimRepositorio(PublicacoesGUI.this);
>> boletins = bRep.listarBoletins();
>> if (boletins != null) {
>> handler.post(new Runnable() {
>> @Override
>> public void run() {
>> adapter.setLista(boletins);
>> adapter.notifyDataSetChanged();
>> }
>> });
>> }
>> }
>> }.start();
>> return true;
>> }
>> });
>>
>> Ouvi dizer que o Handler não estava mais sendo usado mas como no livro
>> onde estudo ele ainda era a única forma de atualizar a activity de uma
>> Thread externa, usei ele aqui também.
>>
>>
>> Em 25 de outubro de 2012 09:08, Otávio Mendes <otavio...@gmail.com>
>> escreveu:
>>>
>>> Depois que fizer o download e atualizar o banco de dados, você atualiza
>>> os dados do Adapter (atualizando o List dele por exemplo) da ListView e
>>> depois chama o método notifyDataSetChanged() do Adapter
>>>
>>> On 24/10/2012, at 21:58, delki8 <del...@gmail.com> wrote:
>>>
>>> Pessoal meu app faz o download de alguns itens, joga isso num banco de
>>> dados e depois faz a leitura desses itens no banco para popular um ListView
>>> dentro de um fragment.
>>>
>>> Na minha action bar eu tenho um botão que faz o download/cadastra no
>>> banco. O meu problema é que eu quero que esse botão também dê um jeito de
>>> atualizar a lista de itens que estão no banco. Atualmente o fragment só
>>> mostra os itens recém cadastrados quando eu giro o celular colocando ele no
>>> modo paisagem, obrigando toda a activity a ser reconstruída.
>>>
>>> Dúvida:
>>> Como eu dou um refresh no fragment depois que os novos dados são
>>> inseridos no banco?
>>> O link para a classe é esse aqui: http://pastebin.com/xDgkM0ay
>>>
>>> Agradeço muito a atenção de vocês. Se alguém tiver alguma sugestão de
>>> solução eu ficaria muito agradecido :)
>>>
>>> --
>>>
>>>
>>>
>>>
>>> --
>>>
>>>
>>
>>
>>
>>
>> --
>> about.me/delki8
>>
>> --
>>
>>
>
>
>
>
>
>
> --
>
>

--





--

--
 
 




--
 
 

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

0 comentários:

Postar um comentário