Realiza diferentes vistas seleccionables en un elemento de vista de lista en Android

En mi aplicación tengo un listView. cada elemento de la vista de lista contiene un cuerpo principal seleccionable (imagen y algo de texto) y otras 3 vistas de texto que se pueden hacer clic.

cuando hago clic en el elemento, se muestra el mapa del área respectiva que se muestra en el elemento, esto funciona bien porque estoy usando onItemClick en la vista de lista en mi actividad.

Pero cuando quiero implementar el onClick en otros 3 TextViews marcados en rojo en la imagen, tengo que implementar el onClick en el método getView de la clase de adaptador.

Aquí viene el problema:

public View getView(int position, View convertView, ViewGroup parent) {

    View vi = convertView;
    ViewHolder holder = new ViewHolder();
    p = values.get(position);
    String date = new java.text.SimpleDateFormat("dd/MM/yy")
            .format(new java.util.Date(p.timeStamp));
    if (vi == null) {

            vi = inflater.inflate(R.layout.feed_items, null);
            holder.text = (TextView) vi.findViewById(R.id.label);
            holder.image = (ImageView) vi.findViewById(R.id.logo);
            holder.thankLabel = (TextView) vi.findViewById(R.id.thankLabel);
            holder.iwantLabel = (TextView) vi.findViewById(R.id.iWantLabel);
            holder.detailsLabel = (TextView) vi
                    .findViewById(R.id.detailsLabel);

                    holder.thankLabel
                    .setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {

                        }
                    });
            holder.iwantLabel
                    .setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {

                            Intent intent = new Intent(activity,
                                    IWantActivity.class);
                            intent.putExtra("productDetails", p.productName
                                    + "^" + p.reportedPrice);
                            activity.startActivity(intent);
                        }
                    });
            holder.detailsLabel
                    .setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {

                        }
                    });
        }
        vi.setTag(holder);
    } else {

        holder = (ViewHolder) vi.getTag();
    }
    return vi;
}

en mi actividad, cuando quiero la referencia de qué elemento se hace clic, puedo usar el parámetro de posición, pero en el caso de getView, la posición del parámetro proporciona el elemento recién creado, pero no el elemento en el que hice clic. ¿Cómo resolver esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta