[RESOLVIDO] Atualizar dados apos excluir registro de ListView

Galera,

Estou tentando excluir um item de uma ListView usando um SimpleAdapter e quando exclui não estou conseguindo atualizar a tela. Gostaria de uma dica de voces.

Vejam como estou fazendo e nao está funcionando:

[code]//imports suprimidos
public class CadastrarNotas extends Activity {

private BaseAdapter adapter;
private Avaliacao avaliacao;
private ListView listView;
private ArrayList<Avaliacao> listaAvaliacoes;
private ArrayList<HashMap<String, String>> listaChaves = new ArrayList<HashMap<String, String>>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

//codigo suprimido

        listaAvaliacoes = new ArrayList<Avaliacao>();

//codigo suprimido
listaAvaliacoes.add(avaliacao);
adcionaLinhaLista(avaliacao);
adapter = new SimpleAdapter(this, listaChaves,
R.layout.linha_avaliacao, new String[]{KEY_AVALIACAO,
KEY_NOTA, KEY_PESO, KEY_PONTOS}, new int[]{
R.linha.avaliacao, R.linha.nota, R.linha.peso,
R.linha.pontos});
listView.setAdapter(adapter);
eventosListView();

        }
    }

}

private void eventosListView() {
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            Toast.makeText(CadastrarNotas.this, "nome" + arg2,
                    Toast.LENGTH_SHORT).show();
            
            /*
             * É aqui que o código nao tá funcionando.
             */
            listaAvaliacoes.remove(arg2);
            
            BaseAdapter adapter = (BaseAdapter) listView.getAdapter();
            adapter.notifyDataSetChanged();
        }
    });
}

}[/code]

Voce precisa modificar a lista do adapter e chamar notifyDataSetChanged().

PS: Tem muito codigo para ler, tente postar só as partes relevantes para ajudar aqueles que querem te ajudar.

[quote=Marky.Vasconcelos]Voce precisa modificar a lista do adapter e chamar notifyDataSetChanged().

PS: Tem muito codigo para ler, tente postar só as partes relevantes para ajudar aqueles que querem te ajudar.[/quote]

Realmente tinha muito código. Foi mal. :slight_smile:

Agora Marky, eu nao entendi quando vc falou que eu devo modificar a lista.

Consegui fazer galera, o problema tava no fato de que eu nao tava excluido tb a minha lista de HasMap. Adicionei a remoção dele no método e foi:

[code]private void eventosListView() {
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {

            listaAvaliacoes.remove(arg2);
            listaChaves.remove(arg2);
            adapter.notifyDataSetChanged();
            
            Toast.makeText(CadastrarNotas.this, "nome" + arg2,
                    Toast.LENGTH_SHORT).show();
        }
    });
}[/code]