When I click on a button within my listview, I call a function where I send a value clearly depending on which button is clicked. When I get a positive response function of the item field changes value, in the first instance is to `validado = 0` and if you click on the button changes to `validado = 1`. If validated this to 1, the button should have a background image as warning that this item is already validated. All this works well for me at first, but if I click on any button, regardless of how many items are on my list, always changes the item to which it is clicked and also the first item on my list. Pretty funny when my data base both locally and in my server, the validated value of the first item remains 0

getView in my adapter

```
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
    ViewHolder holder = null;
    RowItem rowItem = getItem(position);
    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.lista_validacion_multiple, null);
        holder = new ViewHolder();
        holder.txtNombre = (TextView)convertView.findViewById(R.id.txtNombre);
        holder.txtAsiento = (TextView)convertView.findViewById(R.id.txtAsiento);
        holder.txtTicket = (TextView)convertView.findViewById(R.id.txtTicket);
        holder.txtNumero = (TextView)convertView.findViewById(R.id.txtNumero);
        holder.btn = (Button)convertView.findViewById(R.id.button1);
        convertView.setTag(holder);
    } else
        holder = (ViewHolder) convertView.getTag();

    holder.txtNombre.setText("Nombre :"+rowItem.getNombre());
    holder.txtTicket.setText("Ticket :"+rowItem.getTicket());
    if (!rowItem.getAsiento().equals("") && !rowItem.getAsiento().equals("null") && rowItem.getAsiento() != null) {
        holder.txtAsiento.setText("Asiento :"+rowItem.getAsiento());
    }
    if (!rowItem.getNumero().equals("") && !rowItem.getNumero().equals("null") && rowItem.getNumero() != null) {
        holder.txtNumero.setText("Número :"+rowItem.getNumero());
    }
    System.out.println("item "+rowItem.getId_inscripcion()+" validado = "+rowItem.getValidado());
    if(rowItem.getValidado()==1){
        System.out.println("ENTRO");
        holder.btn.setBackgroundResource(R.drawable.icon_big_alert);
        holder.btn.setText("");
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int)LayoutParams.WRAP_CONTENT, (int)LayoutParams.WRAP_CONTENT);
        params.width = 50;
        params.height = 50;
        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        holder.btn.setLayoutParams(params);
    }else{
        holder.btn.setTag(position);
        holder.btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                int position=(Integer)v.getTag();
                RowItem item_click = getItem(position);
                Connection cn = new Connection();
                SessionManager manager = new SessionManager();
                BaseDeDatos nueva = new BaseDeDatos();
                JSONObject json = new JSONObject();
                if(cn.isNetworkAvailable(parent.getContext())){
                    String nombreCliente = manager.getValue(parent.getContext(), "nombreCliente");
                    String user = manager.getValue(parent.getContext(), "nombreUser");
                    String folioEvento = manager.getValue(parent.getContext(), "folioEvento");
                    String codigoEvento = manager.getValue(parent.getContext(), "codigoEvento");
                    String seleccionValidadora = manager.getValue(parent.getContext(), "opcionVerificadora");
                    String nombreUser = manager.getValue(parent.getContext(), "nombreUser");
                    String hashUser = manager.getValue(parent.getContext(), "hashUsuario");
                    String URL_TICKET = Config.URL_BASE + nombreCliente
                            + "/" + Config.URL_VALIDACION_TICKET
                            + nombreUser + "/" + hashUser + "/"
                            + folioEvento + "/" + item_click.getHash()
                            + "/0/";
                    System.out.println(URL_TICKET);
                    if (manager.getValue(parent.getContext(),
                            "checkin") != null) {
                        int id_checkin = nueva.idCheckin(parent.getContext(), manager.getValue(parent.getContext(),"checkin"));
                        String url = URL_TICKET + id_checkin;
                        HttpClient httpClient = new DefaultHttpClient();
                        HttpPost post = new HttpPost(url);
                        post.setHeader("content-type",
                                "application/json");
                        try {
                            // Construimos el objeto cliente en formato
                            // JSON
                            JSONObject dato = new JSONObject();
                            StringEntity entity = new StringEntity(
                                    dato.toString());
                            post.setEntity(entity);
                            HttpResponse resp = httpClient
                                    .execute(post);
                            String respStr = EntityUtils.toString(resp
                                    .getEntity());
                            JSONObject respJSON = new JSONObject(
                                    respStr);
                            json = respJSON;
                        } catch (Exception ex) {
                            Log.e("ServicioRest", "Error!", ex);
                        }
                    } else {
                        String url = URL_TICKET;
                        HttpClient httpClient = new DefaultHttpClient();
                        HttpPost post = new HttpPost(url);
                        post.setHeader("content-type",
                                "application/json");
                        try {
                            // Construimos el objeto cliente en formato
                            // JSON
                            JSONObject dato = new JSONObject();
                            StringEntity entity = new StringEntity(
                                    dato.toString());
                            post.setEntity(entity);
                            HttpResponse resp = httpClient
                                    .execute(post);
                            String respStr = EntityUtils.toString(resp
                                    .getEntity());
                            JSONObject respJSON = new JSONObject(
                                    respStr);
                            json = respJSON;
                        } catch (Exception ex) {
                            Log.e("ServicioRest", "Error!", ex);
                        }
                    }
                    System.out.println(json);
                }else{

                }
            }
        });

    }
    return convertView;
}

```

I show logs to show that the value is still 0

```
08-07 13:39:21.890: I/System.out(14317): item 936 validado = 0
08-07 13:39:21.890: I/System.out(14317): item 937 validado = 0
08-07 13:39:21.890: I/System.out(14317): item 938 validado = 0

```

This log out when you first enter the view of the listview, then I will validate an inscription, whatever, and this is what I get

```
08-07 13:44:08.300: I/System.out(14317): item 936 validado = 0
08-07 13:44:08.300: I/System.out(14317): item 937 validado = 1
08-07 13:44:08.305: I/System.out(14317): item 938 validado = 0

```

That's all right, except the first item plus the charge to the button that validates an image which I just want to be charged to the element that is in `rowItem.getValidado()==1`

**EDIT**

I answered my question.