Non so se la domanda è ancora aperta. Tuttavia, ho pensato di condividere come ho fatto in modo che possa aiutare qualcuno che sta cercando di fare la stessa cosa.
È possibile utilizzare la funzione di tag di una vista per memorizzare la mappatura tra l'id di quella vista e la sua posizione nell'elenco.
La documentazione per i tag sul sito degli sviluppatori Android spiega bene:
http://developer.android.com/reference/android/view/View.html#Tags
http://developer.android.com/reference/android/view/View.html#setTag(int, java.lang.Object)
http://developer.android.com/reference/android/view/View.html#getTag(int)
Esempio: Nel metodo GetView della scheda lista, è possibile imposta la mappatura per l'id di quella vista e la sua posizione nell'elenco, ad esempio:
public View getView (int position, View convertView, ViewGroup parent)
{
if(convertView == null)
{
// create your view by inflating a xml layout resource or instantiating a
// custom view class
}
else
{
// Do whatever you want with the convertView object like
// finding a child view that you want to set some property of,etc.
}
// Here you set the position of the view in the list as its tag
convertView.setTag(convertView.getId(),position);
return convertView;
}
per recuperare la posizione della vista, si potrebbe fare qualcosa di simile:
int getItemPosition(View view)
{
return view.getTag(view.getId());
}
Un punto da notare è che si ha bisogno di avere un riferimento alla Vista la cui posizione si desidera recuperare . Il modo in cui ottieni il riferimento della vista dipende dal tuo caso specifico.
Si avrà una matrice o arraylist che sta facendo da apripista alla tua visualizzazione elenco? Sono abbastanza sicuro che puoi usarlo per raggiungere questo obiettivo. – midhunhk