Không chắc chắn câu hỏi vẫn mở. Tuy nhiên, tôi nghĩ rằng tôi sẽ chia sẻ làm thế nào tôi đã làm nó để nó có thể giúp một người đang tìm kiếm để làm điều tương tự.
Bạn có thể sử dụng tính năng thẻ của chế độ xem để lưu trữ ánh xạ giữa id của chế độ xem đó và vị trí của nó trong danh sách.
Các tài liệu cho thẻ trên trang web của nhà phát triển Android giải thích nó cũng:
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)
Ví dụ: Trong phương pháp getView của bộ chuyển đổi danh sách của bạn, bạn có thể đặt ánh xạ cho id của chế độ xem đó và vị trí của nó trong danh sách, chẳng hạn như:
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;
}
Để lấy lại vị trí của các quan điểm, bạn sẽ làm điều gì đó như:
int getItemPosition(View view)
{
return view.getTag(view.getId());
}
Một điểm cần lưu ý là bạn không cần phải có một tài liệu tham khảo cho View có vị trí bạn muốn lấy . Cách bạn nắm giữ tham chiếu của Chế độ xem phụ thuộc vào trường hợp cụ thể của bạn.
Bạn sẽ có một mảng hoặc danh sách mảng đang sao lưu Chế độ xem danh sách của bạn phải không? Tôi khá chắc chắn bạn có thể sử dụng nó để đạt được điều này. – midhunhk