Atualizar TextView de uma activity, após o uso de um Dialog Fragment

224 views
Skip to first unread message

Henrique

unread,
Aug 24, 2016, 3:26:27 AM8/24/16
to Livro Dominando o Android
    Olá professor Glauber, estou precisando se sua ajuda em um problema mais uma vez, dessa vez, estou com dificuldades em  atualizar um textview de uma Activity com o texto escrito dentro de um Dialog Fragment, no caso, a dificuldade é chamar o método da activity que atualiza esse texto após ser clicado o positive button do dialog e o fechando, sendo assim, para atualizar esse textview eu necessito fechar e abrir a activity onde o textiew está contido, já que o textview não atualiza após ser fechado o dialog fragment.
   

   E mais um coisa se possível, saberia algum método para passar um int de uma Activity para um Dialog Fragment, já que nesse caso não consigo passar por forma de uma Intent.

     Muito Obrigado!
   
         Abraço!

Rudson Lima

unread,
Aug 24, 2016, 6:21:59 AM8/24/16
to Henrique, Livro Dominando o Android
Olá Henrique.

Se eu entende bem sua dificuldade, vc pode criar um listener, dessa forma consegui pegar a informação do seu DialogFragment para a sua Activity.

Sobre mandar uma informação para o seu DialogFragment vc pode fazer isso usando um setArguments do seu DialogFragment.


--
Você recebeu essa mensagem porque está inscrito no grupo "Livro Dominando o Android" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para livro-dominando-o-android+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/livro-dominando-o-android/076f0a78-099e-4b9e-b2f3-a11a72cd180c%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Rudson Lima ( live-O ) Desenvolvedor Android
Contato +55 85 87050560 - Fortaleza-ce
Social facebook | google+ | linkedin

nglauber

unread,
Aug 25, 2016, 12:10:00 AM8/25/16
to Livro Dominando o Android
Oi Henrique,

Vou falar exatamente o que o Rudson falou só sendo mais extenso :)
Pelo que eu entendi, você tem dois problemas: 1) passar um parâmetro para um fragment (um int no seu caso)  e 2) avisar a activity que algo aconteceu no seu fragment. Vamos lá!

1) Para passar um parâmetro para um fragment, você não vai usar uma Intent e sim um factory method (ou método construtor como eu gosto de chamar) que nada mais é do que um método estático (ou seja, de classe) que cria e retorna uma instância do Fragment. No momento da criação você passa os parâmetros recebidos nesse método para um objeto Bundle e atribui ao seu Fragment utilizando o método setArguments. Em seguida, em qualquer lugar do seu Fragment você pode usar o método getArguments() para obter o objeto Bundle e enfim os seu parâmetros.
Dá uma olhada na classe DetailFrament desse link aqui. Acho que é exatamente o que você quer.

2) Em relação a notificar a activity que algo ocorreu você pode implementar um listener/observer/callback no seu Fragment.
class SeuFragment extends DialogFragment {
    CliqueiNoBotaoListener mListener;

    // cria o setListener pra setar o atributo acima...
    
    // No método OnClick do botão do dialog, você coloca...
    if (mListener != null) mListener.botaoFoiClicado(seuObjetoSeQuiser);

    public interface CliqueiNoBotaoListener {
        void botaoFoiClicado(SuaClasse objetoParaPassarPraActivity); // esse parâmetro é opcional... pode tirar se quiser
    }
}

Aí na sua activity...

SeuDialogFragment f  = SeuDialogFragment.newInstance(seuIntDoItemAnterior);
f.setListener(new CliqueiNoBotaoListener(){
    void botaoFoiClicado(SuaClasse objetoParaPassarPraActivity){
        // seja feliz :)
    }
});


Qualquer dúvida me fala ;)

4br4ç05,
nglauber

Henrique

unread,
Aug 25, 2016, 1:40:11 AM8/25/16
to Livro Dominando o Android
Nossa! Obrigado Prof. Glauber e Rudson! Era isso mesmo que eu estava procurando! Vou colocar esse código no meu app agora mesmo!
Obrigado!!
Reply all
Reply to author
Forward
0 new messages