como atualizar o listview após excluir um item ?

15/06/2017

0

Estou excluindo um item do listview e utilizando o método notifyDataSetChanged(); para atualizar o listview, porém o list view não está sendo atualizado.

classe que faz a listagem dos items do listview

public class ListaNotificacoes extends Fragment{

    View minha_view;

    public static ArrayList<ItensDaLista> lista_menu;
    public ListView lista_notify;
    public ItensDoAdaptador itens_adaptador;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        minha_view = inflater.inflate(R.layout.lista_notificacoes, container, false);
        return minha_view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        recupera_tarefa();
    }

    public void recupera_tarefa(){

        try {
            Cursor cursor = banco_dados.rawQuery("SELECT * FROM lista_notificacoes order by id DESC", null);

            //recupera os ids da coluna
            int indiceColunaId = cursor.getColumnIndex("id");
            int indiceColunaTexto = cursor.getColumnIndex("texto_notificacao");
            int indiceColunaHora = cursor.getColumnIndex("hora_notificacao");

            lista_menu = new ArrayList<>();

            itens_adaptador = new ItensDoAdaptador(getActivity(), lista_menu);
            lista_notify = (ListView)getActivity().findViewById(R.id.list_notify);
            lista_notify.setAdapter(itens_adaptador);

            //lista_notify.setEmptyView(getActivity().findViewById(R.id.empty_view));


            //listar as notificações
            cursor.moveToFirst();
            while (cursor != null) {
                String teste = cursor.getString(indiceColunaId);
                lista_menu.add(new ItensDaLista(teste.toString(),cursor.getString(indiceColunaTexto),cursor.getString(indiceColunaHora),R.drawable.delete));
                cursor.moveToNext();
            }

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}


classe que faz a exclusão dos itens do list view

[code][/public class ItensDoAdaptador extends ArrayAdapter<ItensDaLista> {

public ItensDoAdaptador(Activity context, ArrayList<ItensDaLista> iten_drawer) {
// Here, we initialize the ArrayAdapter's internal storage for the context and the list.
// the second argument is used when the ArrayAdapter is populating a single TextView.
// Because this is a custom adapter for two TextViews and an ImageView, the adapter is not
// going to use this second argument, so it can be any value. Here, we used 0.
super(context,0, iten_drawer);
}

public ItensDoAdaptador(Activity context, int count){
super(context,0,count);
}

@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// Check if the existing view is being reused, otherwise inflate the view
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item_notify, parent, false);

}

final ItensDaLista itens_adapter = getItem(position);

TextView imagem_drawer = (TextView) listItemView.findViewById(R.id.numero_notificacao);
imagem_drawer.setText(itens_adapter.getNumero_notificacao());

ImageView imagem_drawer_2 = (ImageView) listItemView.findViewById(R.id.botao_deletar);
imagem_drawer_2.setImageResource(itens_adapter.getId_imagem());
imagem_drawer_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lista_menu.remove(valueOf(itens_adapter.getNumero_notificacao()));
remover_tarefa(valueOf(itens_adapter.getNumero_notificacao()));
notifyDataSetChanged();
}
});

TextView texto_notify = (TextView) listItemView.findViewById(R.id.texto_notificacao_list);
texto_notify.setText(itens_adapter.getTexto());

TextView hora_notify = (TextView) listItemView.findViewById(R.id.texto_hora_list);
hora_notify.setText("Hora: " + itens_adapter.getHora());

return listItemView;
}

private void remover_tarefa(Integer id){
try {
banco_dados.execSQL("DELETE FROM lista_notificacoes WHERE id="+id);
}catch (Exception e){
e.printStackTrace();
}
}

}code]
Igor Silva

Igor Silva

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar