Pages

Problème id à supprimer dans listView sujet

vendredi 31 janvier 2014




Bonsoir à tous,

Je travaille en ce moment sur une listeView contenant des boutons qui suppriment des valeurs d'une base de donnée.
J'en suis ici :


Code:


package com.example.app;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;
import java.util.Map;

/**
 * Created by user pc on 30/01/14.
 */
public class PretAdapte extends BaseAdapter {

    List<? extends Map<String, ?>> data ;
    LayoutInflater inflater ;
    Integer key ;
    final Context context ;

    public PretAdapte(Context context, List<? extends Map<String, ?>> data, Integer key) {
        inflater = LayoutInflater.from(context) ;
        this.data = data ;
        this.key = key ;
        this.context = context ;
    }

    /**
    * retourne le nombre d'éléments de la listview
    */
    @Override
    public int getCount() {
        return data.size() ;
    }

    /**
    * retourne l'item de la listview à un index précis
    */
    @Override
    public Object getItem(int index) {
        return data.get(index) ;
    }

    /**
    * retourne l'index de l'élément actuel
    */
    @Override
    public long getItemId(int index) {
        return index;
    }

    /**
    * structure contenant les éléments d'une ligne
    */
    private class ViewHolder {
        TextView obj ;
        TextView pers ;
        TextView num ;
        ImageButton btnDeleteHF;
    }

    /**
    * Affichage dans la liste
    */
    @Override
    public View getView(int index, View convertView, ViewGroup parent) {
        final ViewHolder holder ;
        if (convertView == null) {
            holder = new ViewHolder() ;
            convertView = inflater.inflate(R.layout.lignelistviewpret, null) ;
            holder.obj = (TextView)convertView.findViewById(R.id.leNomObjet) ;
            holder.pers = (TextView)convertView.findViewById(R.id.leNomPersonne) ;
            holder.num = (TextView)convertView.findViewById(R.id.leNumPersonne) ;
            holder.btnDeleteHF = (ImageButton)convertView.findViewById(R.id.imageButtonSupprimer);
            convertView.setTag(holder) ;
        }else{
            holder = (ViewHolder)convertView.getTag();
        }
        holder.obj.setText((String)this.data.get(index).get("leNomObjet"));
        holder.pers.setText((String)this.data.get(index).get("leNomPersonne"));
        holder.num.setText((String)this.data.get(index).get("leNumPersonne")) ;
        holder.btnDeleteHF.setTag(Integer.parseInt(this.data.get(index).get("identifiant").toString()));
        holder.btnDeleteHF.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                    int position = (Integer)v.getTag();
                    data.remove(position);
                    PretBDD unPretBdd = new PretBDD(context);
                    unPretBdd.open();
                    unPretBdd.removePret(position);
                    unPretBdd.close();
                    notifyDataSetChanged();

            }

        });
        return convertView ;
    }

}


Le truc c'est que je voudrais récupérer à la fois l'ID de la ligne à supprimer de la listView et l'ID de la ligne dans la base de données dans le OnClickListener du bouton.

Merci :)




Aucun commentaire:

Enregistrer un commentaire