Atualizar ListView após inserir informações por DialogFragment

3 respostas
R

Ola, estou criando um aplicativo que utiliza uma ListView para mostra um conjunto de itens, esses item são criados pelo usuário através de um DialogFragment, para chamar o Dialog existe um botão. O Dialog esta abrindo normalmente e salvando as informações no banco de dados.
O problema esta na hora de atualizar a ListView, quando o botão para chamar o Dialog é acionado, as duas funções são executadas paralelamente, uma para mostra o Dialog e outra para atualizar a ListView. Logo a ListView não é atualizada com o ultimo item criado, para atualizá-la é necessário acionar o botão novamente.
Minha duvida é se existe alguma forma de fazer com esses métodos sejam chamados de forma seqüencial?
Por exemplo: fazer com que a função para atualizar ListView seja chamada somende depois de o Dialog se fechado

3 Respostas

C

Ola,

Quando voce manda abrir o dialog, o update tem que ser apenas nele.
quando voce salvar o objeto no dialog voce faz o update no form e no dialog.

R

Acontece que criei uma classe para o dialog

cad.setOnClickListener(new View.OnClickListener() {

<a class="mention" href="/u/override">@Override</a>

public void onClick(View view) {

Log.i(TAG, “botao cadastro”);

ChamaJanela();

atualiza();

Log.i(TAG, “saindo botao cadastra”);

}

});
private void ChamaJanela()
{
    Log.i(TAG, "ChamaJanela");
    FragmentManager fm = getSupportFragmentManager();
    JanelaCadastro janela = JanelaCadastro.newInstance("Cadastro de Produtos");
    janela.setContext(context);
    janela.show(fm,"janela");
}

e dentro dessa classe criei uma conexão com o banco de dados. Sera que não tem alguma forma de realizar a atualização sem ter que implementar o dialog na activity principal

C

No seu metodo onClick voce chama o metodo ChamaJanela e atualiza.
No caso esse atualiza é para o listview?
Se sim, esta no lugar errado, deveria chamar ele no botao ok do dialog.

Criado 7 de novembro de 2017
Ultima resposta 8 de nov. de 2017
Respostas 3
Participantes 2