2015-01-20 12 views
5

Có cách nào để lấy một mục của RecyclerView tại một vị trí cụ thể bên ngoài bộ điều hợp không. ví dụ: trong ListView, chúng tôi có thể thực hiện:RecyclerView android: Nhận một mục tại một vị trí cụ thể

listView.getItem(position); 

Chúng tôi có thể thực hiện việc này với RecyclerView không? và cũng là thứ tự của danh sách dữ liệu được cung cấp duy trì?

Trả lời

9

Bạn có thể thêm phương thức của riêng mình vào RecyclerView hoặc tôi sẽ đề xuất chính mình là RecyclerView.Adapter.

Ví dụ, đối với ListView, bạn có:

@Override 
public Object getItem(int position) { 
    return listData.get(position); 
} 

Bạn có thể thêm điều tương tự để RecylcerView.Adapter hoặc bạn truy cập nó một cách khác bằng cách thêm một phương pháp đơn giản để RecylcerView.Adapter của bạn:

public List<Model> getList() { 
    return this.mModel; 
} 

Sử dụng nó như sau:

recyclerView.getAdapter().getList().get(position) 
+4

Cảm ơn câu trả lời. Tôi đã có phương pháp này trong bộ chuyển đổi nhưng tôi không thể truy cập nó. Tôi đã thử đúc recyclerView.getAdapter() vào lớp bộ điều hợp của tôi và bây giờ tôi có thể truy cập nó. –

+0

Tôi sẽ lập luận rằng nếu bạn làm điều này, bạn vạch trần danh sách với khả năng nó bị sửa đổi từ bên ngoài. Một cách tốt hơn là chỉ phơi bày phần tử theo ID như sau: 'return this.mModel.get (id)' – Sudhanshu

Các vấn đề liên quan