PDA

Ver la Versión Completa : [ SOLUCIONADO ] problema OnClickListener en adapter


rafaxplayer
17/10/14, 01:10:17
Saludos compañero , tengo un problema con mi listview, resulta que en cada view de la lsita hay un boton ,el cual impleneto onclicklistener en el mismo adapter a cada boton para que me de una info de la data del adapter.
El problema es que no coincide la data que obtengo con el item que corresponde , muestro el adapter para que se vea mas claro:

public View getView( int position, View convertView, ViewGroup parent) {
ViewHolder holder;
final int pos=position;
if (convertView == null) {

holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.itemlist, null);

holder.txtfile = (TextView) convertView.findViewById(R.id.textname);
holder.txttype = (TextView) convertView.findViewById(R.id.textType);
holder.txtsize = (TextView) convertView.findViewById(R.id.textSize);
holder.infobtn = (ImageButton) convertView.findViewById(R.id.imageInfo);

holder.infobtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(con,data.get(pos).getFilename(),Toa st.LENGTH_LONG).show();;

}
});

convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
// holder = (ViewHolder) convertView.getTag();
}
holder.txtfile.setText(data.get(position).getFilen ame());

holder.txttype.setText(data.get(position).getFilet ype());

holder.txtsize.setText(data.get(position).getFiles ize());

return convertView;
}

private class ViewHolder {
TextView txtfile;
TextView txttype;
TextView txtsize;
ImageButton infobtn;

}

Bueno el problema es si que aunque el click sea en el item 20 no me da la info de data.get(20) si no simepre de los 5 o 6 items primeros.

rafaxplayer
17/10/14, 08:21:25
Ya lo solucione , el problema fue incluir el listener dentro de la condición if (convertView == null)