I have a ListView
with the following Adapter
:
public class gestionAdapter extends ArrayAdapter<Sav> {
public gestionAdapter(Context context, List<Sav> savs){
super(context, 0, savs);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_gestion,parent, false);
}
Sav sav = getItem(position);
ViewHolderGestion viewHolder = (ViewHolderGestion) convertView.getTag();
if(viewHolder == null){
viewHolder = new ViewHolderGestion();
viewHolder.titreSav = (TextView) convertView.findViewById(R.id.TitreSav);
viewHolder.intervenant = (TextView) convertView.findViewById(R.id.interv);
viewHolder.client = (TextView) convertView.findViewById(R.id.cli);
viewHolder.archive = (Button) convertView.findViewById(R.id.archive);
viewHolder.actif = (Button) convertView.findViewById(R.id.actif);
convertView.setTag(viewHolder);
viewHolder.archive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "archive ", Toast.LENGTH_LONG).show();
}
});
viewHolder.actif.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "actif ", Toast.LENGTH_LONG).show();
}
});
}
viewHolder.titreSav.setText(sav.getTitre());
viewHolder.intervenant.setText(sav.getIntervenant());
viewHolder.client.setText(sav.getNomClient());
return convertView;
}
}
As you notice, there are two buttons
for each row. At the moment, I've put the listeners in the Adapter
But is it possible to put these listeners in the receiving view, so I can use these buttons to refresh my View for example?
At the moment I've tried to make some of the functions of my View public, but I'm not satisfied at all with that solution.