Faça diferentes visualizações clicáveis em um item de lista no android
Na minha aplicação, eu tenho um listView. Cada item da visualização de lista contém um corpo principal clicável (imagem e algum texto) e três outras textViews que podem ser clicadas.
Quando eu clico no item que mostra o mapa da respectiva área mostrada no item, isso funciona bem porque eu estou usando onItemClick no listview na minha atividade.
Mas quando eu quero implementar o onClick nos outros 3 TextViews marcados em vermelho na imagem eu tenho que implementar o onClick no método getView da classe do adaptador.
Aqui vem o 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;
}
na minha atividade, quando eu quero a referência de qual item é clicado, posso usar o parâmetro position, mas no caso de getView, a posição do parâmetro fornece o item recém-criado, mas não o iWant i clicado no item. como resolver isso?